23
SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴컴컴컴컴컴 컴컴컴컴컴 컴컴컴 ropas.snu.ac.kr

SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

Embed Size (px)

Citation preview

Page 1: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

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

겉모양

속내용

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

* abstract syntax* semantic formalisms

Page 4: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

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

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

/

//

///

////

syntax semantics

Page 7: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

syntax semantics

Page 8: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

syntax semantics

Page 9: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

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

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

concrete

abstract

Page 12: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

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

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

소리 , 글

그 구조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

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

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
Page 18: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

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
Page 20: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr
Page 21: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

inductivesemanticdefinition

Page 22: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr
Page 23: SNU 4190.310 Programming Language Prof. Kwangkeun Yi ropas.snu.ac.kr/~kwang 컴퓨터공학부 프로그램밍 연구실 ropas.snu.ac.kr

again,and always,

inductivesemanticdefinition