Computer Science/Universial Programming Language
[UPL] Syntax & Parsing
[UPL] Syntax & Parsing
2025.04.04프로그래밍 언어는 문자열의 집합이고, 프로그래밍 언어로 작성된 프로그램은 문자열이라고 생각할 수 있다.그렇다고 아무 문자열이나 프로그래밍 언어가 될 수 있는 건 아니다. 특정 문법에 부합해야 프로그래밍 언어가 될 수 있다. 문자열 s가 프로그래밍 언어인지 판단하는 함수 L(G) 를 생각해보자.s가 L(G)의 집합에 포함된다면 s는 프로그래밍 언어라고 할 수 있다. 위의 Chomsky Hierarchy는 언어의 표현력을 나타낸다.사실상 튜링 머신은 존재하지 않고 Regular Language는 프로그래밍 언어를 정의할 때 표현력이 부족해 독립적으로 사용되지 않으니 프로그래밍 언어의 정의는 두 가지로 구분된다. 오토마타는 문자열 s가 L(G) 집합에 포함되는지를 판단한다. Lemail 언어를 집합으로..
[UPL] 함수형 언어 OCaml
[UPL] 함수형 언어 OCaml
2025.03.21Objective Caml. Caml 언어는 ML family에 속하는 프로그래밍 언어로, 안전한 소프트웨어 개발과 교육 용도로 활용된다. Functional Programming Language - 함수를 일급 객체로 사용해 변수처럼 다룰 수 있다.Strongly Typed Language - 자바처럼 컴파일 시점에 모든 변수와 표현식의 타입이 결정된다.Pattern Matching - Case 구문의 상위 호환으로, 값의 구조에 따라 조건부 분기를 간결하게 구현할 수 있다.Type Inference - 타입 시스템이 변수와 표현식의 타입을 추론해 코드의 가독성을 높인다.Polymorphism - 함수와 데이터 타입이 여러 다른 타입에서도 재사용 할 수 있다. 명시적인 main 함수가 없고, 소스코드를..