2023-2학기/프로그래밍언어
-
[프언] #03. Inductive Definitions2023-2학기/프로그래밍언어 2023. 9. 9. 15:47
Inductive Specification 이번 글에서는 Induction에 대해 알아볼 것입니다. Induction은 어떤 값들의 모임, 즉 집합을 정의하기 위해서 사용되는 아주 강력한 도구 중 하나입니다. 예시로 설명드리겠습니다. 자연수 $n$이 아래 조건 중 하나를 만족하면 $n\in S$라고 합시다. $n = 0$ $n - 3 \in S$ 일단 확실하게 알 수 있는 건 $0$은 $S$의 원소입니다. 그리고 2번 조건에 의해 $3 - 3$이 $S$의 원소이므로 $3$ 역시 $S$의 원소이겠죠? 같은 방법으로 $6, 9, 12, ..$ 이렇게 3의 배수들은 전무 $S$의 원소라는 사실을 직관을 통해 알 수 있습니다. 이런 방식으로 집합을 정의하는 것을 Induction이라고 합니다. $$ S = \l..
-
[프언] #02. Programming in Scala2023-2학기/프로그래밍언어 2023. 9. 9. 03:53
Scala란? 이 수업에서는 기본 언어로 스칼라를 사용합니다. 스칼라라는 언어가 생소하신 분들이 많을겁니다. 저도 그랬고요. 그럼에도 스칼라를 사용하는 이유는 이 언어가 현대적인 언어의 특징을 많이 가지고 있기 때문입니다. 자세한 내용은 스칼라를 공부할수록 더 자세하게 아실 수 있을 겁니다. 저는 스칼라를 이 과목을 공부하며 처음 사용한거라 설치를 해주었는데요, 이 링크에 들어가면 위 사진처럼 윈도우용 설치기가 있어 저는 그걸 사용했습니다. 간단하게 사용하실 분들은 Scalafiddle이나 Scastie 등의 온라인 툴을 사용하셔도 됩니다. 스칼라는 기본적으로 JVM(Java Virtual Machine, 자바를 실행할 수 있는 환경을 만들어주는 가상 머신) 위에서 실행됩니다. 스칼라로 짜여진 프로그램은..
-
[프언] #01. Introduction2023-2학기/프로그래밍언어 2023. 9. 2. 19:42
Syntax와 Semantics "Programming Language(프로그래밍 언어)란 무엇인가요?" 가장 간단한 답변으로는, "C, Javascript, Phython 등 프로그래밍을 위한 언어" 정도가 있겠네요. 그렇게 저희에게 도움이 되는 답변은 아닙니다. "OO이란 무엇인가요?"라는 질문에 대답하는 가장 일반적인 방법은 OO이 무엇으로 이루어져 있는지에 대해서 말해보는 겁니다. "자동차란 무엇인가요?"라고 묻는다면 바퀴 4개, 벽면, 지붕 이런 것들에 대해 이야기하는 것처럼요. 이런 방식으로 프로그래밍 언어에 대해 접근해 보겠습니다. "Programming Language는 무엇으로 이루어져 있나요?"라고 묻는다면, 프로그래밍 언어는 Syntax와 Semantics로 이루어져 있다고 대답할 수..
-
[프언] #00. Course Information2023-2학기/프로그래밍언어 2023. 8. 31. 14:40
과목 명 : Principles of Programming Languages (프로그래밍언어 / 프언) 교재 및 레퍼런스 Introduction to Programming Languages, written by Jaemin Hong and Sukyoung Ryu at KAIST https://docs.scala-lang.org/tour/tour-of-scala.html 교수님이 배포해주신 수업용 슬라이드 목표 여러 프로그래밍 언어의 공통된 특징을 이해하여 새로운 언어를 습득할 수 있는 능력 기르기 프로그래밍 언어를 이해하기 위해 수학적 도구를 사용하는 방법 배우기 직접 프로그래밍 언어 설계하기