Programing Language(3)
-
[구현 과제] 재귀하강 파서 구현
프로그램 개요l 본 프로그램은 EBNF로 문법이 정의되는 언어를 위한 Recursive-Descent Parser를 C/C++, Java, Python으로 각각 구현한 프로그램임, 프로그램은 아래의 EBNF문법을 모두 구현함https://github.com/Lee-min-gue/study/tree/2cdd07996137c7e6db9bca71875fd754e658a05f/programming_language/my%20recursive%20descent%20parser프로그램 주요 로직사용자 입력 처리:프로그램 실행 시 사용자의 입력을 한 줄씩 받습니다.사용자가 'exit'을 입력할 때까지 계속해서 입력을 받습니다.전역 변수 및 함수:전역 변수로는 pos (커서의 위치)와 token (토큰)이 있습니다...
2024.05.04 -
[프로그래밍 언어론] 2.프로그래밍 언어 의미론
용어lexeme(어휘소): 문장에서 가장 작은 단위의 의미구조Token: lexeme의 종류언어의 일반적인 정의Recognizers입력 문자열을 읽고 언어의 어느 부분에 속하는지 확인컴파일러의 syntax analysisGenerators언어의 문장을 생성함Generator와 비교함으로써 특정 문장의 구문법이 맞는지 확인할 수 있음Context-Free Grammars (CFG)Terminal 심볼 집합: T작성법이 문법 규칙에 의해 정해져 있지 않음, 구문적 변수 역할, 왼쪽에 위치 가능Nonterminal 심볼 집합: N작성법이 문법 규칙에 의해 정해져 있음, 오른쪽에만 존재시작 심볼: S(N에 속함)CFG의 유도입력된 문장이 문법에 맞는지 검사하는것을 유도라고 한다.유도가 가능하다면 문법에 맞는 스..
2024.05.04 -
[프로그래밍 언어론] 1. 프로그래밍 언어의 종류와 특징
프로그래밍 언어 평가 요소 프로그래밍 언어 평가는 언어의 기능, 사용 편의성, 신뢰성 등을 종합적으로 고려하여 이루어집니다. 주요 평가 요소는 다음과 같습니다.1. 가독성 (Readability)프로그램을 얼마나 쉽게 읽고 이해할 수 있는지명확하고 간결한 문법, 자연스러운 표현 방식, 적절한 주석 사용 등이 중요예시: Python, Java2. 작성 용이성 (Writability)프로그램을 얼마나 쉽게 작성할 수 있는지간결하고 명확한 코드 작성을 가능하게 하는 표현력, 다양한 기능 제공 등이 중요예시: Python, JavaScript3. 신뢰성 (Reliability)프로그램이 예상대로 정확하게 작동하는지타입 검사, 예외 처리, 메모리 관리 등을 통한 신뢰성 확보가 중요예시: Java, C++프로그래밍..
2024.05.04