programming이란?
program을 만드는 행위
program은 컴퓨터가 실행할수 있는 메모리에 올라가 있는 덩어리
compile의 뜻 묶는다
interpreting의 뜻 번역
언어 마다 기계어로 바꿨을대 강점이 존재함
-
Lexical Grammar(어휘 문법)
모든 프로그래밍 언어에서 구체적인 문법을 정의하기 이전에 기본 요소들을 정의해 둔 것을 Lexical Grammar
Control Characters(제어문자) : 눈에 보이지 않지만 여러가지 제어를 위해 삽입되는 문자.
White Space(공백) : 공백 (띄어쓰기)를 컴퓨터가 인식하게 하는 문자.
Line terminators(줄바꿈) : 말 그대로 컴퓨터가 줄바꿈을 인식할 수 있게하는 문자.
Comments(주석) : 실제 코드로 작성되어있긴 하지만, 번역기가 코드를 컴퓨터가 이해할 수 있는 더 저차원의 언어로 해석할 때 명령으로 인식하지 않는 부분.
Keywords(키워드) : 미리 약속으로 정해둔 단어들. 자바스크립트에서 정의됨
Literals(리터럴) : 더 이상 나눌 수 없는 값을 표현. 예를 들면 3, ‘3’, [] 등…
자바스크립트 버전업은 이제 부터 년도를 붙히기로 함
프로그램은 3가지 요소로 되어 있음 Statement, Expression, Variable
Statement는 컴퓨터에게 제공하는 힌트
Expression는 식은 값과 같다 식은 결국 하나의 값으로 수렴되니깐(1+1=2)
Variable는 식의 결과를 저장하는 곳 변수가 받는것은 식만 들어감
-
Statement(문)
empty statement : 빈문
i=0; while(i++ <10); console.log(i);
block statement : 중문({})
(flow) control statement : 제어문(언어에 미지정의 되있는것)
질문) 흐름제어를 한다고 하는데 컴파일이 된 결과에서도 흐름제어문이 들어갈수도 있는것아닌가요? 답) 컴파일된 기계어에서도 흐름제어가 될수도 있고 loop가 100번 돌아가면 컴파일러가 문장을 100번 넣을수도 있는것이기 때문에 거기까진 고민하지 않는다.
expression statement : 식문(;)
(variable) declare statement : (변수)선언문
-
Expression
value expression(값식)
operation expression(연산식)
call expression(호출식)