# compiler

Javascript와 컴파일 방식
우선 컴파일 방식에 대해 알아보자.컴파일은 3가지의 종류가 있다.실행중인 소스 코드를 한줄씩 읽어가면서 바로 실행하는 인터프리터 방식과, 실행 전에 컴파일하는 정적 컴파일 방식, 그리고 동적 번역이라고도 불리며, 실행하는 시점에 바이트 코드를 기계어로 번역하는 JITC
libisl 라이브러리
Space Space는 변수들의 집합과 그 차원을 나타냄 Space는 해당 변수들의 관계와 어떤 차원에서 작동하는지를 정의함. 예를 들어, 두 입력 차원과 한 출력 차원이 있는 공간은 2 -> 1 형태를 가집니다. 이는 맵이나 세트를 정의할 때 사용되는 기본 틀입니다. > Example > 2 -> 1 isl_space Set 세트는 다차원 정수 ...

나만의 서버 프레임워크 만들기 - 인증, 트랜잭션, 템플릿 엔진, 자동 생성 도구 만들기
인증과 트랜잭션 처리 그리고 타입스크립트 컴파일러에 대해서 다뤘습니다.

Lombok 너의 내부가 알고싶어!(feat: Rexbok 만들기)
Java 개발자라면 누구나 한번쯤 접해보았을 보일러 플레이트 코드 정리의 끝판왕 Lombok입니다.Spring 의존성을 주입할때도 @RequiredArgsConstructor 를 활용해 참 편하게 주입받아 왔는데요.그렇다면 Lombok은 애너테이션을 붙이면 어떻게 작성
MLIR Transformation
Reference Manual(https://mlir.llvm.org/docs/Dialects/Transform/%arg: !transform.any_op : 핸들이 임의의 페이로드 연산과 연관%arg1: !transform.op<"X"> : 핸들이 X

컴파일러 - Tokenizer, Lexer, Parser, AST
우리가 작성한 코드는 컴파일러에 의해 기계어로 변환된다.컴파일 도중 Tokenizing, Lexing, Parsing이 일어나게 되는데, 오늘은 그 세 가지 과정이 무엇인지에 대해 알아볼 것이다.위 세 과정은 코드를 기계가 읽기 편하도록 실제 기계어 번역 전에 알맞게

CS 필수 지식 #1
동기 : 클라이언트가 요청을 보낸 후 서버로부터 요청에 대한 응답(=결과)가 와야 다음 동작을 실행비동기 : 요청을 보낸 후 응답에 상관없이 다음 동작을 실행\-- 비동기는 자원의 효율적인 사용이 가능하지만 설계가 동기적방식보다 복잡API는 응용 프로그램에서 사용할 수

[JAVA] JDK, JRE, JVM?
Java를 다운하려하니 나오는 단어 JDK, JRE, JVM. 이들의 차이점에 대해서 알아보고 더 앞서 C언어의 컴파일과 JAVA에서의 컴파일 차이점을 알아보자.
C++ compiler
$gcc -E -o test.i test.cC++ 코드에는 96개의 문자들로 이루어진 Basic source character set이 있다.5종류의 공백 문자10종류의 숫자52종류의 알파벳 대소문자29종류의 특수 문자이 문자 셋에 포함되지 않는 다른 문자는 \\u를

var - Java
Java 10부터 도입된 var 키워드는 지역 변수에서만 사용되며, 컴파일러가 타입을 추론한다. 초기화 필요하며, null로 초기화 불가능하고, 배열과 람다에서는 사용할 수 없다. 하지만, 어노테이션을 사용하거나 반복문에서는 사용 가능하다.

타입스크립트 정리 6: 컴파일러
VScode 또는 TypeScript playground에서 타입스크립트 컴파일러 설정을 할 수 있다https://www.typescriptlang.org/playTS configVScode에서 설정한다면먼저 터미널에서 작업할 디렉토리로 들어간 다음이라고 치면
Declaration vs Definition
이 글에서는 declaration(선언)과 definition(정의)의 차이점에 대해 정리했습니다.선언은 변수, 네임스페이스, 함수 및 클래스를 포함하여 프로그램 이름을 지정하는 데 사용됩니다.이름은 선언될 때까지 프로그램에서 사용할 수 없습니다.정의와 달리 프로그램

(1) Lexical Analysis
1960년대 이후, 모든 프로그래밍 언어의 syntax는 formal grammar에 의해 지정됐다. BNF(Backus-Naur Form or Backus-Normal Form)은 ALGOL 60의 syntax를 표현했다.program ::= statement | p

[TypeScript] TypeScript Compiler
시계모드로 해 두면 해당 파일을 컴파일을 계속 하지 않아도 자동으로 컴파일 됨규모가 큰 프로젝트에서는 이렇게 사용하지 않음파일을 지정하지 않아도 시계모드로 프로젝트 전체 폴더를 확인해 변경 사항이 적용될 수 있는 모든 타입스크립트 파일을 다시 컴파일 할 수 있음
언어가 왜이렇게 많음? low-level language 왜씀
자신의 언어와 컴파일러를 개발하는 천재들이 많음. 그중에서 사용하기 편리한 언어, 강점을 가진 언어들이 남게됨.값이 싼 = 사양이 낮은 컴퓨터를 판매할 때 필요하기 때문. 사양이 낮은 컴퓨터는 high-level 언어를 이해하기에 너무 느림ex) iptv 컴퓨터 셋톱박

Top-Down Parsing(2)
Nonrecursive Predictive Parsing 만약 $w$가 지금까지 match해온 input이라면, stack에는 $S\,\,\overset{*}{\underset{lm}\Rightarrow}\,\,w\alpha$를 만족하는 sequence of gramm