배운 것을 세 줄 정도 요약하시오 (중간고사)
BNF(중간고사)
4.1 언어 구문
BNF
::= 정의하다 (==)< > 비단말| 택일기호<identifier> ::= <letter> | <identifier><letter> | <identifier><digit>
<letter> ::= A | B | C | ... | X | Y | Z
<digit> ::= 0 | 1 | 2 | ... | 8 | 9
변수명 I3I
I
I3
I3I
EBNF
{ } { } 0 번 이상 반복
[ ] 0 또는 1번 선택
| 둘 중 하나 선택
메타기호를 terminal로 사용하는 경우, ‘|’ ‘::=’ 같이 묶기
<identifier> : 변수나 함수 이름
<literal> : 상수 (문자열, 숫자)
<expression>, <exp> : 수식, 계산식
<statement> : 각종 문장
<type> : 자료형
<term> : 연산자와 <factor>의 조합으로 이루어진 수식 → 조건문, 반복문 X
EBNF → 조건문, 반복문 O
구문 도표
Algol 60의 문자는 키보드에 없는 것들도 있다..
-> Algol은 하드웨어적인 것을 배제시키고 만들었기 때문
ASCII
유니코드
정합 순서(collating sequence)
숫자, 알파벳은 명시적
특수 문자 순서
→ 프로그래밍 언어 짠 사람이 정한다..
어휘 구조 용어
어휘 토큰 (lexical token)
단어 하나? 라고 생각하면 됨
챗지피티는 8000토큰까지 설정되어있음 (단어 8000개까지)
언어 구성자 (language construct)
if else 같은거
식별자 (identifier)
변수명 등..
예약어 (reserved words / key words)