SlideShare a Scribd company logo
1 of 5
Concept of Programing
Language
표기의미론
연산의미론과 표기의미론의 차이
연산 의미론
• 이상적인 컴퓨터의 상태 변화
의 관점에서 정의된다.
• 기계의 상태를 사용된다.
• 상태변화가 프로그래밍 언어
로 코딩된 알고리즘에 의해
정의된다.
표기 의미론
• 연산 의미론과 거의 유사하지
만 더 단순화되서 단지 프로그
램의 모든 변수들의 값의 관점
에서 정의된다.
• 프로그램의 상태를 사용된다.
• 엄격한 수학 함수에 의해 정의
된다.
식 – 대부분의 프로그래밍 언어에서 기본적인 요
소
BNF
• <expr> -> <dec_num>
| <var>
| <binary_expr>
• <binary_expr> ->
<left_expr><operator><right_expr>
• <left_expr> -> <dec_nam>
| <var>
• <right_expr> -> <dec_nam>
| <var>
• <operator> -> + | *
사상 함수
• M.(<expr>, S) Δ=
• <case> of
• <dec_num> => Mdec(<dec_num>, S)
• <var> => if VARMAP(<var>, S) == undef
then error else VARMAP(<var>, S)
• <binary_expr> =>
if Me(<binary_expr>.<left_expr>, S) ==
undef or Me(<binary_expr>.<right_expr>, S)
== undef then error
• else if <binary_expr>.<operator> == '+' then
Me(<binary_expr>.<left_expr>, S) +
Me(<binary_expr>.<right_expr>, S)
• else Me(<binary_expr>.<left_expr>, S) *
Me(<binary_expr>.<right_expr>, S)
논리 사전-검사 루프
• 가정
• Ms1: 문장리스트와 상태 => 상태
• Mb: 불리언 식 => 불리안 값(or Err)
• M1 = (while B do L, S) Δ=
• if Mb(B, S) == undef then error
• else if Mb(B, S) == false then S
• else if Ms1(L, S) == error then error
• else M1(while B do L, Ms1(L, S))
• 실행 중 오류가 없다면 루프의 의미 == 지정된 횟수만큼 실행된 후의 프로그램 변수들의 값이다.
• 루프는 반복 형태에서 재귀 형태로 변환된다.
• 재귀 제어
• 다른 재귀 상태 사상 함수에 의해 수학적으로 정의된다.
• 반복보다는 수학적으로 엄격성으로 기술하기가 더 수월하다.
• 중요한 점 실재 프로그램의 루프처럼 비종료성(non termination) 때문에 아무것도 계산하지 않을 수 있다.
평가
• 객체와 함수들 => 프로그래밍 언어의 다른 구문 요소에 대해 정의될
수 있다.
• 주어진 언어에 대해 완전한 시스템이 정의되어 있다면..
• 이 시스템은 그 언어로 작성된 전체 프로그램의 의미를 결정하는데 사용할 수
있다.
• 이는 매우 엄격한 방식으로 프로그래밍을 고려하는 프레임워크를 제공한다.
• 표기 의미론은 언어 설계에 보조로서 사용될 수 있다.
• 다른 설계가 고려될 수 있다는 것을 알려줄 수 있다.
• 표기적 기술은 언어를 간명하게 기술하는데 매우 훌륭한 방법을 제공한다.

More Related Content

Similar to Lightning talk - 8 (8)

7가지 동시성 모델 - 3장. 함수형 프로그래밍
7가지 동시성 모델 - 3장. 함수형 프로그래밍7가지 동시성 모델 - 3장. 함수형 프로그래밍
7가지 동시성 모델 - 3장. 함수형 프로그래밍
 
Lightning talk - 6
Lightning talk - 6Lightning talk - 6
Lightning talk - 6
 
Java8 람다
Java8 람다Java8 람다
Java8 람다
 
컴파일러 Ch01
컴파일러 Ch01컴파일러 Ch01
컴파일러 Ch01
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기
 
6 function
6 function6 function
6 function
 
2013 C++ Study For Students #1
2013 C++ Study For Students #12013 C++ Study For Students #1
2013 C++ Study For Students #1
 

More from DonggyuKim21 (7)

Lightning talk - 12
Lightning talk - 12Lightning talk - 12
Lightning talk - 12
 
Lightning talk - 11
Lightning talk - 11Lightning talk - 11
Lightning talk - 11
 
Lightning Talk 10
Lightning Talk 10Lightning Talk 10
Lightning Talk 10
 
Lightning Talk 9
Lightning Talk 9Lightning Talk 9
Lightning Talk 9
 
Lightning talk - 5
Lightning talk - 5Lightning talk - 5
Lightning talk - 5
 
Lightning talk - 2
Lightning talk - 2Lightning talk - 2
Lightning talk - 2
 
Lightning talk - 1
Lightning talk - 1Lightning talk - 1
Lightning talk - 1
 

Recently uploaded

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 

Recently uploaded (6)

도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
 
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
 

Lightning talk - 8

  • 2. 연산의미론과 표기의미론의 차이 연산 의미론 • 이상적인 컴퓨터의 상태 변화 의 관점에서 정의된다. • 기계의 상태를 사용된다. • 상태변화가 프로그래밍 언어 로 코딩된 알고리즘에 의해 정의된다. 표기 의미론 • 연산 의미론과 거의 유사하지 만 더 단순화되서 단지 프로그 램의 모든 변수들의 값의 관점 에서 정의된다. • 프로그램의 상태를 사용된다. • 엄격한 수학 함수에 의해 정의 된다.
  • 3. 식 – 대부분의 프로그래밍 언어에서 기본적인 요 소 BNF • <expr> -> <dec_num> | <var> | <binary_expr> • <binary_expr> -> <left_expr><operator><right_expr> • <left_expr> -> <dec_nam> | <var> • <right_expr> -> <dec_nam> | <var> • <operator> -> + | * 사상 함수 • M.(<expr>, S) Δ= • <case> of • <dec_num> => Mdec(<dec_num>, S) • <var> => if VARMAP(<var>, S) == undef then error else VARMAP(<var>, S) • <binary_expr> => if Me(<binary_expr>.<left_expr>, S) == undef or Me(<binary_expr>.<right_expr>, S) == undef then error • else if <binary_expr>.<operator> == '+' then Me(<binary_expr>.<left_expr>, S) + Me(<binary_expr>.<right_expr>, S) • else Me(<binary_expr>.<left_expr>, S) * Me(<binary_expr>.<right_expr>, S)
  • 4. 논리 사전-검사 루프 • 가정 • Ms1: 문장리스트와 상태 => 상태 • Mb: 불리언 식 => 불리안 값(or Err) • M1 = (while B do L, S) Δ= • if Mb(B, S) == undef then error • else if Mb(B, S) == false then S • else if Ms1(L, S) == error then error • else M1(while B do L, Ms1(L, S)) • 실행 중 오류가 없다면 루프의 의미 == 지정된 횟수만큼 실행된 후의 프로그램 변수들의 값이다. • 루프는 반복 형태에서 재귀 형태로 변환된다. • 재귀 제어 • 다른 재귀 상태 사상 함수에 의해 수학적으로 정의된다. • 반복보다는 수학적으로 엄격성으로 기술하기가 더 수월하다. • 중요한 점 실재 프로그램의 루프처럼 비종료성(non termination) 때문에 아무것도 계산하지 않을 수 있다.
  • 5. 평가 • 객체와 함수들 => 프로그래밍 언어의 다른 구문 요소에 대해 정의될 수 있다. • 주어진 언어에 대해 완전한 시스템이 정의되어 있다면.. • 이 시스템은 그 언어로 작성된 전체 프로그램의 의미를 결정하는데 사용할 수 있다. • 이는 매우 엄격한 방식으로 프로그래밍을 고려하는 프레임워크를 제공한다. • 표기 의미론은 언어 설계에 보조로서 사용될 수 있다. • 다른 설계가 고려될 수 있다는 것을 알려줄 수 있다. • 표기적 기술은 언어를 간명하게 기술하는데 매우 훌륭한 방법을 제공한다.