언어.. 언어가 무엇일까 ??
우리가 의사소통할때 필요한것이 언어이다 .
그런데 여기서 우리는 컴퓨터간에 소통을 해야한다.
그래서 프로그래밍 언어를 사용하고
어떠한 명령어라던지 코드를 작성해서 컴퓨터랑 의사소통을 하게 된다.
프로그래밍 언어는 컴퓨터랑 의사소통을 하기위해 존재하는 언어이지만 ,
컴퓨터 기준이 아닌 , 사람기준에세 좀더 사람 친화적이게 변화해 왔다.
그 결과 Low 언어에서 High 언어로 지금까지 변화해왔는데 ,
이 High 언어로는 바로 컴퓨터랑 소통하기가 어렵다. 그래서
번역가 역할이 필요한데 ,
그것이 인터프리터 , 컴파일 언어이다.
그럼 여기서 두개의 차이는 무엇일까 ??
개발자가 작성한 코드를 기계어로 변환과정없이 한줄 한줄 해석하여 실행하는 언어이다.
즉 , 한줄이 바뀔때마다 즉시 검사하는 방식이다.
한문장씩 즉시 명령어를 검사를 하다보니 언어속도가 빠르지 않다.
번역과 실행을 순차적으로 동작 시키기 때문에 1개의 액션이 동작하게 된다.
ex ) R , Python , PHP , Javascript
개발자가 작성한 코드를 모두 기계어로 변환한 후에 기계어 코드로 실행을 하게 된다.
즉 , 작성한 코드나 명령어를 한꺼번에 모아서 한번에 실행하는 방식이다.
한번에 하다보면 , 처음에는 오래걸릴 수 있으며 , 메모리도 많이 먹게된다.
하지만 컴파일 이후에는 실행이 빠르며 , 한번에 변환을 다 해줬기때문에 그 이후로는 변환을 할 필요가 없다 .
실행전에 번역이 필요하기때문에 번역 한번 그리고 실행한번 총 2개의 액션이 동작하게 된다.
ex ) C , C++ , Java , Rust , Go
컴파일을 사용하게 되면 번역을 한번에 하기때문에 좋을 수가 있다.
하지만 만약에 규모가 큰 프로그램이라면 컴파일에 몇시간이 걸릴수가 있다.
'
하지만 인터프리터 언어는 소스를 바꾸고 나서 바로바로 실행해서 디버깅하면 되니깐 초기 개발하기에 너무 편하다.
스크립트 언어는 인터프리터 방식에서 나온것으로 응용 소프트웨어와 상호작용하며 제어하게 된다.
자바스크립트 또한 웹브라우저에서 console.log() 를 찍어보면 출력되는것을 알 수 있다.
스크립트 언어의 특징은 새로운 프로그램을 만들기 보다는 기존의 프로그램을 제어하기 위해 쓰인다.
웹이 없다면 자바스크립트를 쓰는 의미가 없는 것처럼 , 스크립트 언어들은 기존 프로그램을 전제로 사용하게 된다.