SlideShare ist ein Scribd-Unternehmen logo
1 von 2
파싱테이블 만들기 Project<br />1.  Lex 와 Yacc 를 사용하여 파서 만들기 <br />- 간단한 것부터 시작하여 복잡한 것까지 계속적으로 파싱테이블을 만들면서 프로젝트를 진행할 예정입니다. 최종 목표는 C 언어 전체의 파싱테이블을 만드는 것입니다. 작은것부터 차근차근 하겠습니다.<br />2.  ANTLR 을 이용하여 만들기<br />- 기존의 Lex 와 Yacc를 이용하는 것이 아닌 다른 방법으로도 시도해 보려고 합니다. 함께수업을 수강하는 다른 학생들에게도 또 다른 재밌고 유익한 프로그램이 많다는 것을 알려주고 함께 사용방법까지 숙지하고 싶습니다. ANTLR 은 간단한 문법을 통해 직관적인 오토마타를 생성해주고 그 오토마타의 규칙을 C# C++ JAVA 등의 파일로 생성시켜주는 프로그램입니다. 이 프로그램을 이용해서는 C 언어 전체에 대해서 어휘분석을 하려고 합니다. ANTLR 에 대해서 간단히 소개하겠습니다.<br />ANTLR이란 무엇인가? (http://www.antlr.org)<br />- 인식기(recognizer), compiler, translator를 구성하기 위한 framework를 제공해주는 언어 인식툴<br />- 문장이 해당 언어에 적합한가 여부를 결정하는 프로그램을 생성하고, 중간 형식 트리 구성, 트리워킹, 번역과 자동 에러 검출, 보고 등에 대한 지원을 제공<br />- LL(k) 파서이면서 테이블 기반(Table-Driven)이 아닌, 사람이 작성한 것과 유사한(Recursive Decent Parser) 코드를 생성하기 때문에 생성된 코드를 쉽게 이해 및 수정<br />- 기본적으로 LL 파서이므로 left Recursion을 직접 제거해야하고 일부 문법에 Lookahead를 직접 지정해주어야 한다는 것이 단점 <br />왜 ANTLR를 이용하는가?<br />ANTLR은 손으로 했던 것을 정확하게 자동화하기 위한 목적에서 생겨났다. 즉 NFA 를 이용한 직관적 분석을 실시간으로 피드백을 받을 수 있어 그 논리가 옳은지 바로 확인 할 수 있고 쉽게 이해할 수 있다. 이는 수정 및 보완 역시 용의하게 해준다는 장점을 함께 가져다 준다.<br />ANTLR의 특징은 다음의 기본적인 요구를 만족한다. <br />이해하기 쉬운 인터페이스<br />문제를 해결하기 위한 강력한 툴,<br />작업의 자동화<br />쉽게 폴더화 하여 결과물을 생성<br />- ANTLR은 렉서 및 파서를 명세하여 주는 툴이다. ANTLR은 직관적으로 이해 가능한 NFA 구조를보여주어 보다 쉽고 정확하게 에러를 확인 하고, 수정 보완 할 수 있다. <br />- ANTLR은 Java, C#, C++, 등의 다양한 언어를 지원해준다. <br />- ANTLR은 다양한 언어와 호환할 수 있는 source code를 생성해 주고, 사용에 있어서 절대적으로 전혀 제약사항을 가지고 있지 않다. <br /> <br />위와 같은 장점 때문에 현재 ANTLR 은 이러한 분석 프로그램을 만드는데 많이 이용되고 있다.<br />
파싱테이블 만들기 Project

Weitere ähnliche Inhalte

Ähnlich wie 파싱테이블 만들기 Project

31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"hyu_jaram
 
소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자Deogtae Kim
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)Jay Park
 
C Language II
C Language IIC Language II
C Language IISuho Kwon
 
09.explaining the visual basic concept, introduction to smart check and confi...
09.explaining the visual basic concept, introduction to smart check and confi...09.explaining the visual basic concept, introduction to smart check and confi...
09.explaining the visual basic concept, introduction to smart check and confi...re4lfl0w
 
Sequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural NetworksSequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural NetworksHoon Heo
 
​『함수형 반응형 프로그래밍』 맛보기
​『함수형 반응형 프로그래밍』 맛보기​『함수형 반응형 프로그래밍』 맛보기
​『함수형 반응형 프로그래밍』 맛보기복연 이
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it goChris Ohk
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기Changwan Jun
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임codenavy
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월월간 IT 슬라이드
 
개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술중선 곽
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼mangonamu
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 

Ähnlich wie 파싱테이블 만들기 Project (20)

7 8 1
7 8 17 8 1
7 8 1
 
31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"
 
소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)
 
C Language II
C Language IIC Language II
C Language II
 
09.explaining the visual basic concept, introduction to smart check and confi...
09.explaining the visual basic concept, introduction to smart check and confi...09.explaining the visual basic concept, introduction to smart check and confi...
09.explaining the visual basic concept, introduction to smart check and confi...
 
In c
In cIn c
In c
 
Sequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural NetworksSequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural Networks
 
​『함수형 반응형 프로그래밍』 맛보기
​『함수형 반응형 프로그래밍』 맛보기​『함수형 반응형 프로그래밍』 맛보기
​『함수형 반응형 프로그래밍』 맛보기
 
Native A/V
Native A/VNative A/V
Native A/V
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
 
개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
Learning Laravel
Learning LaravelLearning Laravel
Learning Laravel
 

Kürzlich hochgeladen

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 

Kürzlich hochgeladen (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 

파싱테이블 만들기 Project

  • 1. 파싱테이블 만들기 Project<br />1. Lex 와 Yacc 를 사용하여 파서 만들기 <br />- 간단한 것부터 시작하여 복잡한 것까지 계속적으로 파싱테이블을 만들면서 프로젝트를 진행할 예정입니다. 최종 목표는 C 언어 전체의 파싱테이블을 만드는 것입니다. 작은것부터 차근차근 하겠습니다.<br />2. ANTLR 을 이용하여 만들기<br />- 기존의 Lex 와 Yacc를 이용하는 것이 아닌 다른 방법으로도 시도해 보려고 합니다. 함께수업을 수강하는 다른 학생들에게도 또 다른 재밌고 유익한 프로그램이 많다는 것을 알려주고 함께 사용방법까지 숙지하고 싶습니다. ANTLR 은 간단한 문법을 통해 직관적인 오토마타를 생성해주고 그 오토마타의 규칙을 C# C++ JAVA 등의 파일로 생성시켜주는 프로그램입니다. 이 프로그램을 이용해서는 C 언어 전체에 대해서 어휘분석을 하려고 합니다. ANTLR 에 대해서 간단히 소개하겠습니다.<br />ANTLR이란 무엇인가? (http://www.antlr.org)<br />- 인식기(recognizer), compiler, translator를 구성하기 위한 framework를 제공해주는 언어 인식툴<br />- 문장이 해당 언어에 적합한가 여부를 결정하는 프로그램을 생성하고, 중간 형식 트리 구성, 트리워킹, 번역과 자동 에러 검출, 보고 등에 대한 지원을 제공<br />- LL(k) 파서이면서 테이블 기반(Table-Driven)이 아닌, 사람이 작성한 것과 유사한(Recursive Decent Parser) 코드를 생성하기 때문에 생성된 코드를 쉽게 이해 및 수정<br />- 기본적으로 LL 파서이므로 left Recursion을 직접 제거해야하고 일부 문법에 Lookahead를 직접 지정해주어야 한다는 것이 단점 <br />왜 ANTLR를 이용하는가?<br />ANTLR은 손으로 했던 것을 정확하게 자동화하기 위한 목적에서 생겨났다. 즉 NFA 를 이용한 직관적 분석을 실시간으로 피드백을 받을 수 있어 그 논리가 옳은지 바로 확인 할 수 있고 쉽게 이해할 수 있다. 이는 수정 및 보완 역시 용의하게 해준다는 장점을 함께 가져다 준다.<br />ANTLR의 특징은 다음의 기본적인 요구를 만족한다. <br />이해하기 쉬운 인터페이스<br />문제를 해결하기 위한 강력한 툴,<br />작업의 자동화<br />쉽게 폴더화 하여 결과물을 생성<br />- ANTLR은 렉서 및 파서를 명세하여 주는 툴이다. ANTLR은 직관적으로 이해 가능한 NFA 구조를보여주어 보다 쉽고 정확하게 에러를 확인 하고, 수정 보완 할 수 있다. <br />- ANTLR은 Java, C#, C++, 등의 다양한 언어를 지원해준다. <br />- ANTLR은 다양한 언어와 호환할 수 있는 source code를 생성해 주고, 사용에 있어서 절대적으로 전혀 제약사항을 가지고 있지 않다. <br /> <br />위와 같은 장점 때문에 현재 ANTLR 은 이러한 분석 프로그램을 만드는데 많이 이용되고 있다.<br />