Chapter 4 – 프로그래밍 언어의 구문과 구현 기법

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

Introduction to Programming Languages What is Programming Language?
제 5 장 구문 정의  프로그래밍 언어의 기본 문자 집합  Alphabet 문자 (A-Z) 26 개 + 아라비아 숫자 (0 - 9) 10 개  예 ) Fortran : 기본 문자 집합 + 13 개의 특수문자 (=+ - * / ( ),. $ ‘ : 공백 ) Algol60.
천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무.
9. 중간언어 9-1. 소개 9-2. Polish표기법 주소 코드 9-4. 트리 구조 코드
장. 프로그래밍 언어의 이해 컴퓨터공학과 권기태 프로그래밍언어론프로그래밍 언어.
컴퓨터와 인터넷.
재료수치해석 HW # 박재혁.
3주 강의 Lexical Elements, Operators, and the C System
Database Laboratory, Hong Ik University
Power Java 제3장 이클립스 사용하기.
1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System
최윤정 Java 프로그래밍 클래스 상속 최윤정
제 4장 프로그래밍 언어의 구문과 구현 기법 4.1 언어 구문 4.2 프로그래밍 언어 구현 기법.
제 4장 프로그래밍 언어의 구문과 구현 기법 4.1 언어 구문 4.2 프로그래밍 언어 구현 기법.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
제2장 구문(Syntax) Reading Chap 4 © 숙대 창병모.
4장 구문(Syntax).
3장 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
프로그래밍언어론 2nd edition Tucker and Noonan
제4장 블록 및 유효범위 Reading Chap. 5 © 숙대 창병모.
시스템집적반도체 설계 검증 환경과 기법 Ch 7.
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행
프로그래밍 언어 프로그래밍 언어의 개요 프로그래밍 언어의 구문 정의 변수와 영역 자료형 조건문과 반복문 부프로그램
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
장. 문법 구조(Syntax) 컴퓨터공학과 권기태 프로그래밍언어론.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Error Detection and Correction
제1장 컴파일러 개요.
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
1. C 언어 개요.
JA A V W. 03.
자바 5.0 프로그래밍.
프로그래밍 개요
5. Context-free 문법 5-1. 서 론 5-2. 유도와 유도 트리 5-3. CFG표기법.
Chap 6.Assembler 유건우.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
UNIX Unbounded A Beginning Approach
☆ASCII☆ 김연주.
제 9장 트랜스레이터.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
프로그래밍언어론 2nd edition Tucker and Noonan
자바 5.0 프로그래밍.
Chapter 02. 자바 기본 문법.
Part 1 개요 Chapter 1 : 컴퓨터와 프로그램 그리고 자바 Chapter 2 : 자바의 환경
텍스트 분석 기초.
VHDL를 이용한 DES 설계 정보통신컴퓨터공학부 5조 김인옥, 백미숙
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
9. 중간언어 9-1. 소개 9-2. Polish표기법 주소 코드 9-4. 트리 구조 코드
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
3과목 운영체제 강사 이 민 욱.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
Chapter 10 데이터 검색1.
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
3.2 분기 명령어.
Numerical Analysis Programming using NRs
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
3장 (2) 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
제 4 장 Record.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
 6장. SQL 쿼리.
윈도우에서의 유니코드.
1장. C Language Synopsis.
6 객체.
Presentation transcript:

Chapter 4 – 프로그래밍 언어의 구문과 구현 기법 Outline 4.1 언어 구문 4.2 프로그래밍 언어 구현 기법

4.1 언어 구문 언어 정의 – 구문, 의미. 컴퓨터 – 프로그램을 실행 할 수 있는 알고리즘 + 자료구조 집합. 언어 정의 – 구문, 의미. 자연어 정의, 형식 정의 구문 형식 정의 – BNF, EBNF, 구문 도표 컴퓨터 – 프로그램을 실행 할 수 있는 알고리즘 + 자료구조 집합. 하드웨어 컴퓨터 (실제 컴퓨터) 소프트웨어 시뮬레이터 컴퓨터 가상 컴퓨터 (virtual computer)

4.1 언어 구문 가상 컴퓨터 고급 언어 프로그래머는 컴퓨터를 가상의 고급 언어 컴퓨터로 간주 ....... 가상의 C++ Ada 컴퓨터 운영체제 명령어 번역기 Ada 번역기 C++ 번역기 가상의 Assembly 언어 컴퓨터 운영체제 가상의 Cobol 컴퓨터 어셈블러 Cobol 번역기 Computer Hardware Lisp 인터프리터 ....... 가상의 Lisp 컴퓨터 Power Builder 인터프리터 가상의 Power Builder 컴퓨터

4.1 언어 구문 relational < ≤ = > ≠ boolean ¬ ∧ ∨ ⊃ ≡ arithmetic ↑ × 프로그래밍 언어의 기본 문자 집합 알파벳 문자 (A - Z) 26개 +아라비아 숫자 (0 - 9) 10개 예) Fortran : 기본 문자 집합 + 13개의 특수문자(+ + - * / ( ) , . $ ‘ : 공백) Algol 60 : 알파벳 대소문자 52개 + 아라비아 숫자 10개 + 28개의 특수문자 Algol60의 특수 문자 relational < ≤ = > ≠ boolean ¬ ∧ ∨ ⊃ ≡ arithmetic ↑ × + - special , 10 : ; ' Б ( ) [ ] ”

4.1 언어 구문 문자 코드 체계 EBCDIC (Extended Binary Coded Decimal Interchange Code) IBM에서 제안, 8비트 조합 코드 ASCII (American Standard Code for Information Interchange) ANSI에서 제안, 7비트 조합 코드(128개의 문자 표현) 영문자 대소문자 52개 + 숫자 10개 + 33개의 특수문자 +33개의 제어문자 유니 코드 (Uni code) 16 bit ISO표준 규격 Java에 시행

4.1 언어 구문 정합 순서(collating sequence) 어휘 구조 용어 언어에 제공된 문자 순서 일반 순서 지킴. 예) 0 < 1< 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 A < B < C < . . . < X < Y < Z 특수 문자 순서 (?) 코드 체계 따름 (구현시 결정) 프로그래머 정의 가능 (RPG, Snobol) 어휘 구조 용어 어휘 토큰 언어 구성자 식별자, 미리 정의 된 식별자, 예약어 구분자, 분리자

4.1 언어 구문 어휘 토큰 (lexical token), 어휘 요소 (lexical element), 어휘 단위 (lexical unit) 언어 구성자 (language construct) 식별자 [프로그래밍 언어에서] (identifier [in programming language) 미리 정의된 식별자 (predefined identifier)

4.1 언어 구문 예약어 (reserved words 또는 key words) 언어 어휘를 구성하는 단어나 기호 형태의 문자 알파벳 프로그램의 변수 이름으로 사용할 수 없음 장점 - 프로그램 판독성 증가, 컴파일러가 기호 테이블을 빠른 시간에 탐색 단점 – 많은 예약어를 기억하기 어려움, 언어 확장시 새로운 예약어가 확장 이전에 사용했던 프로그램의 식별자와 중복 우려

4.1 언어 구문 BNF (Backus – Naur Form) 표기법 구문(syntax) 형식을 정의하는 가장 보편적인 표기법 언어의 문장을 생성하는 생성 규칙(Production rule)정의 생성 규칙 생성 규칙의 왼쪽(정의될 대상), 오른쪽에는 그 대상에 대한 정의가 표현 BNF 표기법에 의한 식별자(identifier)정의 메타기호 ::= 정의하다, < > 비단말(nonterminal), | 택일기호 <identifier> ::= <letter>| <identifier><letter> | <identifier><digit> <letter> ::=A | B | C | ... | X | Y | Z <digit> ::=0 | 1 | 2 | ... | 8 | 9

4.1 언어 구문 EBNF (Extended Backus – Naur Form) 표기법 BNF보다 추가된 특수한 의미를 갖는 EBNF의 메타 기호 반복 : { }, { } 0 번 이상 반복 선택 : [ ] 0 또는 1번 선택 { }, [ ], |, ( ), ::=와 같은 메타 기호를 언어의 terminal로 사용하는 경우, ‘|’, ‘::=‘ 와 같이 인용부호로 묶어 표현 subpascal 시작부에 대한 EBNF 표기 <subpascal> ::=program <ident>;<block> . <block> ::=[<const_dcl>][<var_dcl>]{<proc_dcl>} <compound-st> <const_dcl> ::=const <ident> = <number> {;<ident> = <number> }; <var_dcl> ::=var <ident_list> : <type>{; <ident_list> : <type> }; <ident_list> ::=<ident> {,<ident>} <proc_dcl> ::=procedure <ident>['('<formal_param>')'];<block>; <compound-st> ::=begin <statement> {;<statement>} end

4.1 언어 구문 구문 도표 (Syntax diagram) 구문 도표는 그 형태가 순서도와 유사 구문 도표는 EBNF 와 일대일 대응 다시 정의될 대상은 네모칸으로 단말 기호는 원이나 타원형으로 표시하고 이들 사이는 지시선으로 연결 단말 X 비단말 B X B

4.1 언어 구문 구문 도표 (Syntax diagram) 구문 도표 그리는 방법  Xi가 비단말 기호인 경우 Xn X2 X1 A ... A ... X1 X2 Xn 2 1 n . . . A

4.1 언어 구문 구문 도표 (Syntax diagram) 구문 도표 그리는 방법 EBNF A ::= {α}  A  1 A 

4.1 언어 구문 구문 도표 (Syntax diagram) 예제 EBNF 구문도표 A ::= x | ‘(‘B’)’ B ::= AC C ::= {+A} (조건) VN = {A, B, C} VT = { +, x, (, ) } x ( ) B A C + x ( A ) +

; · = : ( ) Subpascal 시작부 구문 도표 subpascal program ident block const number var procedure begin statement type : end ( formal-param ) ’

4.1 언어 구문 파스 트리 (parse tree) T E S 1 원시 프로그램의 문법을 검사하는 과정에서 내부적으로 생성되는 트리 형태의 자료구조 한 표현이 BNF에 의해 작성될 수 있는지 여부를 나타냄 예 - 식별자에 대한 BNF 를 통해 다음 TEST1 에 대한 파스 트리 작성 <identifier> <digit> <letter> T E S 1 <identifier> ::=<letter>| <identifier><letter> | <identifier><digit> <letter> ::=A | B | C | ... | X | Y | Z <digit> ::=0 | 1 | 2 | ... | 8 | 9

4.1 언어 구문 모호성, 결합성 및 우선 순위 서로 다른 유도 과정을 거쳐 B33을 생성한다. <identifier> <identifier> <digit> <identifier> 3 <identifier> <digit> 3 <identifier> 3 3 <letter> 3 3 B 3 3 <identifier> <identifier> <digit> <identifier> <digit> <digit> <letter> <digit> <digit> B <digit> <digit> B 3 <digit> B 3 3 <identifier> <digit> <letter> B 3 파스 트리

4.1 언어 구문 모호성, 결합성 및 우선 순위 다른 유도가 다른 파스 트리를 구성할 수 있다. 예) 3 – 2 * 5 <exp> - 3 * 2 5 <exp> <exp> - <exp> <exp> - <exp> * <exp> ( 두 번째 <exp> 이 <exp> * <exp> 로 대치) <number> - <exp> * <exp> …… 파스 트리 <exp> * - 3 2 5 <exp> <exp> * <exp> <exp> - <exp> * <exp> ( 첫 번째 <exp> 이 <exp> - <exp> 로 대치) <number> - <exp> * <exp> …… 파스 트리

4.1 언어 구문 모호성, 결합성 및 우선 순위 모호 (ambiguous) : 같은 스트리에 대해서 두 가지 서로 다른 파스 트리가 발생 모호성 제거

4.1 언어 구문 모호성, 결합성 및 우선 순위 순위 폭포(precedence cascade) : 새 비단말기호(<term>)와 문법 규칙을 추가하여 문법의 우선순위를 정함. 7-3-2 파싱 시 동일한 표현이 좌-결합 or 우-결합의 두 가지로 표현 <exp> ::= <exp> - <exp> | <term> <term> ::= <term> * <term> | (<exp>) | <number>

4.1 언어 구문 모호성, 결합성 및 우선 순위 BNF 문법에 좌순환 규칙을 사용하면 좌-결합을 지원할 수 있다. <exp> ::= <exp> - <exp>를 <exp> ::= <exp>-<term>으로 대치하면 좌-결합으로 파싱된다. 우순환 규칙 (<exp> ::= <term> - <exp>)은 우-결합 파스 트리를 파싱

4.1 언어 구문 모호성, 결합성 및 우선 순위 표 4.5는 표 4.4의 문법이 우선 순위와 좌-결합으로 인해 모호성을 갖지 않는다. <표 4.5> 표 4.4의 개정문법 <exp> ::= <exp> - <term> | <term> <term> ::= <term> * <factor> | <factor> <factor> ::= (<exp>) | <number> <number> ::= <number><digit> | <digit> <digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

4.1 언어 구문 구문과 프로그램 신뢰성 구문 (SYNTAX) 언어의 신뢰성에 영향 FORTRAN PL/I 2.6의 오류(. 대신 , 사용해야 함) DO10 I에 2.6 배정으로 인식 DO 10 I = 2.6 A(I) = B + C(I) 10 CONTINUE 다중배정문의 의미(A와 B에 C값 저장) (B = C)의 결과를 A에 저장하는 문장으로 인식 A = B = C

4.1 언어 구문 구문과 프로그램 신뢰성 현수(dangling) else 문제 예제 중첩된 if 문에서 else는 어떤 if의 else인가? 예제 if c1 then if c2 then S1 else S2 ① if c1 then (if c2 then S1 else S2) ② if c1 then (if c2 then S1) else S2 해석 각 언어에서 해결책 Algol60: Algol68: ① if c1 then begin if c2 then S1 else S2 end ① if c1 then if c2 then S1 else S2 fi fi ② if c1 then begin if c2 then S1 end else S2 ② if c1 then if c2 then S1 fi else S2 fi PL/I : Pascal : ② IF c1 THEN IF c2 THEN S1;ELSE S2; ② if c1 then begin if c2 then S1 end else S2 또는 또는 IF c1 THEN IF c2 THEN S1;ELSE;ELSE S2; if c1 then if c2 then S1 else else S2 ※ PL/1과 pascal은 일반적으로 ①의 경우로 해석

4.2 프로그래밍 언어 구현 기법 컴퓨터 : 프로그램을 저장하여 실행할 수 있는 알고리즘과 자료의 총괄 집합 Actual computer(hardware), software simulated computer 예) Cobol computer (가상 컴퓨터) 번역기 구성 번역된 프로그램 실행 hardware + software (virtual computer) 이론적으로 고급 언어를 기계언어로 하는 hardware 구성 가능 속도, 적응성, 비용 증가 저급 수준의 언어를 기계 언어로 하는 컴퓨터 제공 언어구현 사용자 : 고급언어 프로그래밍 기계 : 저급 언어 프로그래밍

4.2 프로그래밍 언어 구현 기법 번역 기법

4.2 프로그래밍 언어 구현 기법 번역기의 종류 컴파일러(compiler) 어셈블러(assembler) 원시 언어 :고급 언어 목적 언어 : 실제 기계 언어에 가까운 저급 언어 저급 언어에는 준기계어 형태 또는 어셈블리 언어 어셈블러(assembler) 원시 언어 : 어셈블리 언어 목적 언어 : 준기계어 형태 링키지 에디터(linkage editor) 여러 개의 프로그램(재배치 형태 기계어)을 묶음 로드 모듈 생성 로드 모듈 : 어느 정도 실행 가능한 하나의 기계어 프로그램

4.2 프로그래밍 언어 구현 기법 번역기의 종류 로더(loader) 프리프로세서(preprocessor) 기계어 프로그램(로드 모듈)을 실제 실행 가능한 기계어로 번역해서 주기억 장치에 적재 프리프로세서(preprocessor) 원시 언어와 목적 언어가 모두 고급 언어인 번역기 고급 언어 프로그램을 다른 고급 언어로 번역 후, 출력된 고급 언어를 이미 구현된 방법으로 실행시킬 때 사용 고급 언어에 대한 언어 확장하여 구현 시 유용 (C++, concurrent C)

입력 자료 인터프리터 결과 실행 4.2 프로그래밍 언어 구현 기법 고급 언어 원시 프로그램 인터프리터 기법 고급 언어 기계를 다른 기계에서 소프트웨어로 시뮬레이션하는 방법 고급 언어 원시 인터프리터 실행 결과 입력 자료 프로그램

(linker, linkage editor) 4.2 프로그래밍 언어 구현 기법 번역기 종류와 인터프리터 고급 언어 프로그램 컴파일러 기계어 , 준기계어 ( 목적 모듈 ) 어셈블러 링 커 (linker, linkage editor) 로드 로 더 (relocating loader) 실행 가능 Preprocessor 원시 입력 출력 소프트웨어 인터프리터 프로그램이 실행된 결과 출 력 하드웨어 프리프로세서 a) 번역기 b)

(I/O routine등 일부 code는 simulation) 4.2 프로그래밍 언어 구현 기법 인터프리터 기법과 번역 기법의 비교 번역기 - 입력 프로그램과 동일한 의미의 목적 언어 프로그램 생성 인터프리터 - 직접 입력 프로그램을 실행하는 것 순수 번역 기법 (Assembly 등 저급 언어 가능) 순수 시뮬레이션 기법 (JCL, APL 등) 번역 효율적인 부분(반복 수행부와 수식 계산 등) 존재 원시 코드의 simulation이 효율적인 부분(I/O routine 등) 존재 순수 번역 기법이나 순수 시뮬레이션 기법은 실제로 거의 존재치 않음 simulation Translation (object 모듈 발생) 적응성 효율성 (I/O routine등 일부 code는 simulation)

4.2 프로그래밍 언어 구현 기법 번역 기법의 장단점 인터프리터 기법의 장단점 장점 - 실행 시간 효율성 제공 (한번 디코딩으로 반복 실행) 단점 - 번역된 프로그램이 큰 기억 장치 요구 (I/O routine 등) 인터프리터 기법의 장단점 번역 기법과 장단점이 반대임 사용자 적응성(flexibility) 제공

4.2 프로그래밍 언어 구현 기법 하이브리드 기법 프로그램을 실행시키기 쉬운 형태로 번역한 후, 그 번역된 형태의 프로그램을 디코드하여 시뮬레이션으로 실행 현 대부분의 인터프리터 언어가 이 방법을 따름 중간 형태 코드가 저급이면 번역 기법으로 간주되기도 함

4.2 프로그래밍 언어 구현 기법 컴파일러 언어 인터프리터 언어 Fortran, Algol, PL/I, Pascal, Cobol, C, Ada 컴파일러 방법의 장점 기계어로 번역된 것을 하드웨어 인터프리터가 디코드하여 실행 빠른 프로그램 실행(효율성) 인터프리터 언어 Lisp, Snobol 4, APL, Prolog 구현 방법 번역기가 중간언어를 생성 후, 중간언어로 작성된 프로그램을 소프트웨어 인터프리터로 실행 하이브리드 방법 컴파일러 방법보다 실행 시간이 비효율적이나 사용자 적응성 제공

슬라이드 쇼가 끝났습니다.

용 어 정리

어휘 토큰 (lexical token), 어휘 요소 (lexical element), 어휘 단위 (lexical unit) 용어 국제 표준 규격 15.01.01 lexical token 어휘 토큰 lexical element 어휘 요소 lexical unit 어휘 단위 A string of one or more characters of the alphabet of a programming language that, by convention, represents an elemental unit of meaning. <Example> A literal such as 2G5 or an identifier such as last_name in Pascal. 규약에 의거하여 기본 의미 단위를 표현하는, 한 개 이상의 프로그램 언어의 알파벳 문자로 구성된 문자열 <예> 2G5와 같은 리터럴 또는 Pascal에서 last_name과 같은 식별자

언어 구성자 (language construct) 용어 국제 표준 규격 15.01.02 language construct 언어 구성자 A syntactically allowable part of a program that may be formed from one or more lexical tokens in accordance with the rules of a programming language. 프로그래밍 언어의 규칙에 따라서 한 개 이상의 어휘 토큰으로 형성되며, 구문적으로 허용된 프로그램의 일부

identifier (in programming language) 식별자 (프로그래밍 언어에서) 용어 국제 표준 규격 15.01.03 identifier (in programming language) 식별자 (프로그래밍 언어에서) A lexical token that names a language construct. <Examples> the names of variables, arrays, records, labels, procedures, etc. <NOTE> An identifier usually consists of a letter optionally followed by letters, digits, or other characters. 언어 구성자를 명명하는 어휘 토큰 <예> 변수, 배열, 레코드, 레이블, 프로시저 등의 이름 <주> 식별자는 일반적으로 문자가 맨 앞에 오고 그  뒤에 영문자, 숫자, 또는 그 밖의 문자가 0개 이상 따라오도록 구성된다.

미리 정의된 식별자 (predefined identifier) 용어 국제 표준 규격 15.01.04 predefined identifier 미리 정의된 식별자 An identifier that is defined as part of a programming language. <Example> A reserved word. <NOTE> If a predefined identifier is not reserved, then a declaration using that identifier redefines its meaning for the scope of the declaration. 프로그래밍 언어의 일부로 정의된 식별자이다. <예> 예약어 <주> 미리 정의된 식별자가 예약되어 있지 않다면, 그 식별자를 사용한 선언으로 선언의 영역에서 식별자의 의미를 재정의 할 수 있다.

예약어 (reserved words or key words) 용어 국제 표준 규격 15.01.05 reserved word 예약어 A predefined identifier that cannot be redefined by a programmer. <NOTE> Not all programming languages have reserved words. 프로그래머가 재정의할 수 없는 미리 정의된 식별자 <주> 모든 프로그래밍 언어가 예약어를 가지고 있는 것은 아니다.

모호성 제거 용어 국제 표준 규격 15.01.09 disambiguation 모호성 제거 The action of determining which language construct, of several whit the same sequence of lexical tokens, is referred to by a particular occurrence within a program. 동일한 어휘 토큰 순서를 가진 다수의 언어 구성자 중 어떤 언어 구성자를 프로그램 내의 특정 사건이 참조하는지 결정하는 행위