# compiler

44개의 포스트
post-thumbnail

Build Process

cf) parse와 semantic analysis 과정을 구분하지 않는 경우도 존재한다.

4일 전
·
0개의 댓글

컴퓨터 언어의 변형

프로그램을 개발할땐 각각의 특색에 맞는 개발 언어가 존재한다.이러한 언어는 컴퓨터가 바로 해석할 수 있는 단계가 아닌 개발자가 작성(코딩)하기 편한 언어(고급언어)로 되어있다.고급언어를 컴퓨터가 이해하기 위해서는 번역기가 필요하다. 오늘 알아볼 내용이 바로 이 번역기에

7일 전
·
0개의 댓글

Next JS가 Babel을 SWC로 대체한 이유

Next JS 12 버전이 SWC를 권장하는 이유

2022년 6월 26일
·
0개의 댓글

언어 처리기

컴파일러 고수준 언어를 저수준 언어로번역 인터프리터 소스 프로그램을 실행

2022년 6월 11일
·
0개의 댓글

Semantic analyzer

프로그램의 semantic은 의미를 뜻한다.구문상으로 올바른 문법이어도 의미상 틀릴 수 있다.CFG가 모든 프로그래밍 언어를 표현 불가능CFG에서 Attribute를 활용한 문법심볼마다 속성을 가진다.속성은 여러 개 가질 수 있다.합성:$S(X_0)=f(A(X_1),

2022년 6월 7일
·
0개의 댓글
post-thumbnail

(번역) 타입스크립트 컴파일러가 컴파일하는 방법

타입스크립트 컴파일러는 타입스크립트 코드를 분석하여 타입 정의 파일(.d.ts) 또는 소스 맵(.js.map)과 함께 자바스크립트(*.js)로 컴파일하는 도구입니다. 만약 소스 파일에 문제가 있다면, 타입스크립트 컴파일러는 문제를 진단하여 우리에게 무엇이 잘못되었고 어

2022년 6월 7일
·
0개의 댓글

BottomUpParsing

Right most derivationshift: input에서 stack의 top으로reduce: production을 역으로 수행stack과 input에 대한 lookahead$S'$이 추가된 문법$L(G')=L(G)$$V_N'=V_N \\cup S'$$P' = P

2022년 6월 4일
·
0개의 댓글

TopDownParsing

Left most derivationrecursive descent parsing: 백트랙킹 사용으로 비효율, 무한루프 때문에 좌재귀를 없애야 한다.LL(k)백트랙킹이 없다.파싱 과정stack/input/action시작 심볼을 stack에 넣는다.generate/mat

2022년 5월 25일
·
0개의 댓글

Pushdown Automata

푸시마타 오토마타는 CFG를 인식하기 위한 오토마타$Q$:states 집합$\\Sigma$: input symbols$\\Gamma$: 스택에 저장되는 심볼$q_0$: start state$Z_0$: 스택의 start 심볼, 라지 감마에 포함$F$: final stat

2022년 5월 25일
·
0개의 댓글

CFG

Context Free Language대부분의 프로그래밍 언어가 속해있다.$\\alpha \\rightarrow \\beta , \\alpha \\in V^+, \\beta \\in V^\*$$\\alpha \\in V_N, \\beta \\in V^\*$문장을 트리

2022년 5월 25일
·
0개의 댓글

Finite Automata

Regular language를 인식하기 위한 오토마타한정된 전이 그래프, 간선에 알파벳이 있다.Deterministic finite automata$Q$: A finite set of states$\\sum$: A finite set of input symbols(

2022년 5월 17일
·
0개의 댓글

컴파일러란

컴파일러: 언어를 번역하는 프로그램

2022년 5월 12일
·
0개의 댓글
post-thumbnail

TypeScript compiler

typescript compiler

2022년 5월 9일
·
0개의 댓글
post-thumbnail

[iOS] 컴파일 최적화 feat 꼬리재귀

🛠 컴파일 최적화 ⚙️ 컴파일 최적화란? 위키에서 말하는 컴파일 최적화의 정의를 찾아보았다. >컴파일러 최적화(optimizing compiler)는 컴파일러에서 출력되는 실행 프로그램의 효율성을 최적화하는 과정을 말한다. 일반적으로 프로그램의 실행 속도를 최대화하거

2022년 4월 20일
·
0개의 댓글

Typescript 컴파일러 명령어 및 사용법

tsconfig.json을 생성해준다. 그래서 tsconfig.json에서 내가 원하는 방식으로 ts 파일을 컴파일 커스텀을 할 수 있다. tsconfig.json이 위치한 모든 ts 파일을 컴파일해서 js파일로 만들어준다.

2022년 4월 16일
·
0개의 댓글

바이트 코드와 머신 코드

머신 코드는 CPU가 직접 실행할 수 있는 이진 코드이고, 바이트 코드는 컴파일러에 의해서 생성된 중간 단계의 코드라고 할 수 있다. Java에서 바이트 코드는 JVM에서 실행되고 JVM의 JIT 컴파일러는 바이트 코드를 머신 코드로 변환하는 역할을 담당한다.머신 코드

2022년 4월 12일
·
0개의 댓글

compiler와 interpreter

우리와 컴퓨터의 의사소통 방식에 대해 이해하기 위해선 몇가지 개념에 대한 설명이 필요하다.간단하게 저레벨 언어는 컴퓨터가 알아듣기 쉬운 언어이고, 고레벨 언어는 우리(개발자)가 알아듣기 쉬운 언어이다.컴퓨터 프로그램은 고급언어로 작성되는데, 이는 사람이 이해하기 위한

2022년 4월 4일
·
0개의 댓글
post-thumbnail

Xcode Debugging

Xcode Compiler에 대해 간단하게만 알아보자.

2022년 3월 23일
·
0개의 댓글
post-thumbnail

Linking

정적 링킹이란 실행 가능한 목적 파일을 만들 때 프로그램에서 사용하는 모든 라이브러리 모듈을 복사하는 방식을 말하며 링커에 의해 이루어진다. 즉, 자신이 작성한 프로그램에서 A라는 외부 함수를 사용했다면, A라는 외부 함수에 대한 정보를 자신이 작성한 프로그램의 실행파

2022년 2월 14일
·
0개의 댓글
post-thumbnail

JVM, JDE, JDK

이 과정도 언어가 변하는 것이기 때문에 컴파일이라 할 수있다.ex) python -> java실제 컴파일을 돌려주는 주체이다.버튼을 누르면 실제 동작을 수행하는 것컴파일러에게 변환된 인간이 알아볼 수 없는 0,1 코드운영체제마다 바이트코드를 읽는게 다릅니다.c언어 같은

2022년 1월 21일
·
0개의 댓글