프로그램의 작성시기는 린트타임(1), 컴파일타임(2), 런타임(3) 이 존재한다.
런타임을 조금 더 자세히 보면 메모리에 적재된 명령과 데이터를 CPU가 소비를 할 것이다. 이 때 CPU에는 간략히 보면 fetch를 담당하며 가장 먼저 메모리의 정보와 접촉하는 외부버스가 존재하고 그 후에 CPU가 이해할 수 있는 실행할 수 있는 명령어로 디코딩을 해주는 제어유닛을 통하고 연산유닛에서 연산을 실행하며 연산에 필요한 데이터를 데이터유닛에서 불러오고 연산의 결과도 하나의 데이터이기 때문에 다시 데이터유닛에게 보내준다. 이 데이터유닛을 메모리의 데이터부분에 보낼지 말지는 내가 작성한 코드에 의해 결정된다.
이것은 컴파일언어의 간략한 실행과정이다. 스크립트언어의 과정은 조금다르다. 스크립트언어에는 컴파일타임이 존재하지 않는다. 하나의 텍스트파일을 작성하면 그 파일을 메모리에 적재하고 런타임시점에서 번역을 한다.이 과정을 조금더 보자면 런타임시 가장 처음에 불러오는 정보들은 기저의 함수나 클래스등이 올것이고 이것을 바탕으로 내가 작성한 커스텀함수나 클래스드을 불러 오고 그 다음에 명령과 데이터가 이용이 될 것이다.이 말은 다시보자면 정보들을 불러올 때 그 전에 필요로 하는 정보를 불러오는 과정이 존재한다고 볼 수 있다. 즉 런타임 시점에서 또 다른 런타임 시점으로 볼 수 있는 것이다. 그래서 스크립트 언어에서는 컴파일타임이란 존재하지 않지만 상대적으로보자면 하나의 런타임(커스텀함수 혹은 클래스를 불러오는 과정)을 하기 전에 또 다른 런타임(기저의 함수나 클래스를 불러오는 과정)이 존재 한다는 것이다. 이것을 상대적으로 보면 컴파일타임과 비슷한 스태틱타임이 존재하고 이 스태틱타임을 바탕으로 다시 런타임이 실행이 되는 것이다. 스크립트언어는 런타임시점이 어떤과정이냐에 따라 스태틱타임과 런타임으로 구분이 될 수 있다.
- 린트타임이란 코드에디터에서 코드를 작성하는 시점.
- 컴파일타임은 작성한 텍스트파일들을 하나의 파일 (혹은 통합된 여러파일들로) 컴파일을 되는 시점
- 런타임이란 컴파일된 파일에 작성된 명령과 데이터가 메모리에 적재되어 실행되는 시점이다.
- instruction: CPU가 이해할 수 있는 명령어(외부버스(FETCH) => 제어유닛(DECODE)의 과정을 거친 명령어).
08.20
공부를 하는 것은 용어를 나의 말로 정의를 내릴 수 있어야 한다고 들었다.지금까지 공부를 하면서 여러정보들을 알게 되었지만 그 정보들을 정의를 내리지 못했다. 그래서 더더욱 이론에 필요성을 느끼고 내가배운언어 자바스크립트에 한정된 정보들을 공부를 했는데 이것이 나에게 있어서 독이 된것 같다. 특정언어의 스펙을 아는 것도 중요하지만 근본적인 개발철학이 중요하다고 생각이 들었다. 지금부터는 자바스크립트를 공부하되 이 지식이 가지는 근본적인 가치와 원칙을 공부하려 한다.