Racket은 function programming language입니다. function language에서 function은 무엇이든 될 수 있습니다.
프로그램이란 무엇이고 좋은 프로그램이란 무엇일까요? 만약 우리가 디자인을 잘 할 수 있다면 에러를 많이 줄일 수 있을 것입니다. 그런 점에서 저는 구조적, 구체적 생각, 계획, 이해를 바탕으로 프로그램을 창조하는 것이 좋은 프로그램이라 생각합니다.
크리스천인 우리는 창조의 기원을 살펴볼 수 밖에 없는데요, 1~3일차에는 물질들이 있을 수 있는 공간을, 그리고 4~6일차에는 그 공간에 물질들을 창조하신 것을 볼 수 있습니다. 우리도 하나님을 닮아 좋은 프로그래밍을 하길 원합니다.
프로그램이 작동하기까지 1)디자인 2)프로그램작성 3)interpret or compile 4)run & see the result의 순서가 있습니다.
프로그래밍 언어의 요소에는 어떤 것들이 있을까요?
1 Peculiar syntax
2 syntax와 관련된 behaviors
3 많은 유용한 libraries
4 프로그래머들이 사용하는 많은 idioms
- Syntax와 Semantic의 차이?
int myAge = 0; myAge = myAge + 1;
에서 type variable operator operand ; 순으로 나온다는 것이 syntax입니다.
반면 "나는 변수에 +1을 하고 싶다"라고 하는 프로그래머의 직접적인 의도가 semantic이라고 할 수 있습니다.
- Interpreter
program -> result(bash, Racket, Search Engine)- Compiler
program -> another (binary) program(gcc, javac, Racket)