![Page 1: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/1.jpg)
SNU 4190.310 Programming Language
Prof. Kwangkeun Yiropas.snu.ac.kr/~kwang
컴퓨터공학부 프로그램밍 연구실ropas.snu.ac.kr
![Page 2: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/2.jpg)
겉모양
속내용
We use it this way
It means …
![Page 3: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/3.jpg)
* abstract syntax* semantic formalisms
![Page 4: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/4.jpg)
Question
How do infintely many programs exist?
For all natural number n
Can you prove it?
![Page 5: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/5.jpg)
InductiveDefinition
귀납적인정의
“ 나는 귀납한다고로 전산학을 한다 .”
is natural number
is nat then is also natif
is nat
is nat
is nat
Natural number is a set of elements that can be checked by method I
Natural number is a set of elements that can be made by method II
![Page 6: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/6.jpg)
/
//
///
////
syntax semantics
![Page 7: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/7.jpg)
syntax semantics
![Page 8: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/8.jpg)
syntax semantics
![Page 9: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/9.jpg)
Integer expression
Programming language is the same
syntax semantics
![Page 10: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/10.jpg)
Abstract Syntax
• 문장을 만드는 방법• 프로램을 만드는
방법
• abstract syntax is the tool for the speaker
• “concrete syntax” is the tool for the listener왜 , 무엇때문에 ,
abstract syntax 라고 하는 것인가 ?
![Page 11: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/11.jpg)
concrete
abstract
![Page 12: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/12.jpg)
Abstract Syntax
- specifies how to construct sentences (programs)
- no more no less- hence “abstract”
E -> Z | E + E | E * E
1 2
+
*
3
“1 더하기 2 하고 , 결과에 3 곱하기”
![Page 13: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/13.jpg)
Concrete Syntax
• tells how to see sentences
• tells how to re-construct the
abstract syntax tree from the strings!
“1+2*3”1 차원의 실
이 실에서 부터 말한 사람이머리속에 구성했던 문장의 구조를어떻게 재구성하나 ?
Concrete Syntax tells youhow.
E -> Z | E+T | T+ET -> Z | T*T
![Page 14: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/14.jpg)
소리 , 글
그 구조Parsing
Syntax for finding out the syntax structure in a 1-line program
![Page 15: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/15.jpg)
1-line program should be able to be determined without confusing
![Page 16: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/16.jpg)
Just represent core structure.
Integer expression
![Page 17: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/17.jpg)
![Page 18: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/18.jpg)
Once the syntax of a program is determined,Semantics should be determined without confusing
![Page 19: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/19.jpg)
![Page 20: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/20.jpg)
![Page 21: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/21.jpg)
inductivesemanticdefinition
![Page 22: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/22.jpg)
![Page 23: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr](https://reader036.vdocuments.site/reader036/viewer/2022062300/56649f535503460f94c77697/html5/thumbnails/23.jpg)
again,and always,
inductivesemanticdefinition