1960년대 이후, 모든 프로그래밍 언어의 syntax는 formal grammar에 의해 지정됐다. BNF(Backus-Naur Form or Backus-Normal Form)은 ALGOL 60의 syntax를 표현했다.program ::= statement | p
유한한 상태의 집합으로 transition 규칙을 나타낸다.transition 규칙은 하나의 상태에서 input을 받고 다른 상태로 넘어가는 것을 말한다.디지털 회로 설계를 위한 소프트웨어, 컴파일러의 lexical analyzer, 파일이나 웹의 키워드 찾는 text
A language L is regular iff it is the language accepted by some DFA. 어느 Deterministic finite automata 중 하나라도 그 language가 수렴하면 그 language를 regular하다고 할
lex program $\\rarr$ lex compiler $\\rarr$ transition table/actions여기서 transition table과 오가는 것이 있는데 그게 Automaton simulator(lexing)이다.regular expressio
SW 어플리케이션을 동작하기 위해서는 하드웨어 전에 OS에게 이해할 수 있는 언어로 번역해주는 과정이 필요한데 이 때 필요한 것이 Interpreters와 compilers다a program that reads a source program and produces th
scanner(lexical analysis)를 통해 소스 프로그램이 토큰 단위로 나뉘어져 symbol table에 관리된다. 이제 parser는 각 토큰을 가지고 syntax tree를 만든다. syntax는 문장의 형태와 관련있다.프로그램 구문을 검사하는 역할을 한
저번시간에 CFG(Context Free Grammar)에 대해 이야기하다 끝을 냈다.$L(G)={a^{2n}b^n|n\\ge 0}$CFG G = ${{S},{a,b},S,P}$P : S $\\rarr aaSb\\ | \\ \\epsilon$$L(G)={a^{m}b^n
크게 2가지의 parsing 방법에 대해 알아보고자 한다.Top-down parsingBottom-up parsingbottom-up parsing에 비해 좀 더 직관적으로 이해할 수 있다. 그리고 손 코딩이 가능하다. 물론 bottom-up parsing도 손 코딩이