기록

JavaScript &TypeScript & 언어번역프로그램 본문

TIL*

JavaScript &TypeScript & 언어번역프로그램

mnmhbbb 2021. 11. 23. 23:48

자바스크립트

  • 인터프리터 언어
  • 동적 타입 언어
  • 런타임에 타입이 결정되는 언어
  • 클라이언트 측 스크립팅 언어

 

타입스크립트

  • 자바스크립트에 타입을 부여한 언어
  • 자바스크립트와 달리 브라우저에서 실행하려면 파일 변환(컴파일)이 필요한 컴파일 언어
  • 정적 타입 언어
  • 컴파일 언어라서 미리 타입을 체크하여 오류를 방지할 수 있음

https://velog.io/@pluviabc1/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%99%80-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

자바스크립트와 타입스크립트 차이점

JavaScript와 TypeScript TypeScript는 JavaScript 기반의 언어 JavaScript는 클라이언트 측 스크립팅 언어 TypeScript는 객체 지향 컴파일 언어 객체 지향 프로그래밍 패러다임은 데이터 추상화에 중심 객체와 클

velog.io

 

 

+) PHP와 JavaScript 비교
출력값은 같지만 JS는 입력값+출력값 모두가 결과로 나오고, PHP는 출력값만 나온다.
PHP는 서버 사이드 언어라서 PHP 인터프리터 엔진에게 파일 처리 맡겨서 PHP를 해석한 다음에 그 결과를 웹서버에 보내주면 그걸 다시 웹 브라우저에게 전달해주는 것

Client가 .php파일을 서버에 요청하게 되면 서버에서는 .php보고 
php interpreter(혹은 php engine)에게 넘긴다. 
php interpreter는 php의 content를 해석해서 결과를 웹서버에게 넘겨주고
웹서버는 해석된 file을 웹브라우저에게 전달한다.

출처: 
https://icandooit.tistory.com/17

JS는 웹 브라우저가 해석하는 언어. 클라이언트 동작 언어라서 모두 볼 수 있다고 함

 

 

+) 엔진의 동작 원리

엔진이 어떻게 동작하는지 이해하려면 상당한 시간을 쏟아부어야 합니다.
하지만 기본 원리는 다음과 같이 간단합니다.

- 엔진(브라우저라면 내장 엔진)이 스크립트를 읽습니다(파싱).
- 읽어 들인 스크립트를 기계어로 전환합니다(컴파일).기계어로 전환된 코드가 실행됩니다.
- 기계어로 전환되었기 때문에 실행 속도가 빠릅니다.

엔진은 프로세스 각 단계마다 최적화를 진행합니다. 심지어 컴파일이 끝나고 실행 중인 코드를 감시하면서, 이 코드로 흘러가는 데이터를 분석하고, 분석 결과를 토대로 기계어로 전환된 코드를 다시 최적화하기도 합니다. 이런 과정을 거치면 스크립트 실행 속도는 더욱 더 빨라집니다.

출처: https://ko.javascript.info/intro

 

 

인터프리터, 컴파일러

1. 인터프리터
- 인터프리터는 고급 언어로 작성된 프로그램을 한줄 단위로 받아들여 번역하고, 번역과 동시에 프로그램을 한줄 단위로 즉시 실행시키는 프로그램이다.
- 프로그램이 직접 실행되므로 목적 프로그램이 생성되지 않는다.
- 줄 단위로 번역, 실행되기 때문에 시분할 시스템에 유용하며 원시 프로그램의 변화에 대한 반응이 빠르다.
- 번역 속도는 빠르지만 프로그램 실행 시마다 매번 번역해야 하므로 실행속도는 느리다.
- CPU 사용 시간의 낭비가 크다.

2. 컴파일러
- 컴파일러는 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 프로그램을 생성한다.
- 번역과 실행 과정을 거쳐야하기 때문에 번역 과정이 번거롭고 번역 시간이 오래 걸리지만, 한번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠르다.

출처: https://velog.io/@dongwon2/TypeScript%EB%A5%BC-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EC%A0%84%EC%97%90-%EC%9D%B4%EC%A0%95%EB%8F%84%EB%8A%94-%ED%95%B4%EC%A4%98%EC%95%BC%EC%A7%80

 

+)목적프로그램?

원시 프로그램
사람이 읽을 수 있는 문자로 만든 단지 문서입니다.
메모장 같은 텍스트 편집기에서 작성할 수 있습니다.

목적프로그램
원시프로그램을 컴파일러를 이용해서 기계어로 번역한 파일 입니다.
단 이상태로는 실행가능하지 않으며 목적프로그램은 실행 파일을 만들기 위해서 필요로 합니다.
하나의 원시 프로그램은 하나의 목적파일을 생성하게 됩니다.

실행프로그램
하나 이상의 목적프로그램들을 역어서 실행가능한 상태로 만든 파일입니다. 

https://nyhya.tistory.com/173

 

원시/목적/실행 프로그램

원시 프로그램 사람이 읽을 수 있는 문자로 만든 단지 문서입니다. 메모장 같은 텍스트 편집기에서 작성할 수 있습니다. 목적프로그램 원시프로그램을 컴파일러를 이용해서 기계어로 번역한 파

nyhya.tistory.com

 

+) 언어 번역 프로그램에 대한 정리

원시프로그램 -> 컴파일 -> 목적프로그램(기계어 기반) -> 실행프로그램

-컴파일러: 고급언어로 작성된 프로그램을 번역하는 프로그램

-어셈블리어: 저급언어로 작성된 원시프로그램을 기계어로 번역하는 프로그램

-인터프리터: 원시프로그램을 번역하는 프로그램이지만, 원시프로그램을 한줄씩 번역하고 실행한다는 차이점이 있음
따라서 프로그램 전체를 번역하지 않으므로 목적프로그램이 생성되지 않는다.

대부분의 고급 언어로 쓰인 프로그램은 
기계어로 된 목적프로그램으로 변환되기 이전에 어셈블리어로 변환됨
사용자언어 -> 어셈블리어 -> 기계어

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=djyoon1125&logNo=130174747994 

 

언어 번역 프로그램의 종류(컴파일러, 어셈블러, 인터프리터)

컴퓨터에 관심이 있거나 C언어같은 프로그래밍 언어를 배우기 시작한 분들에게 있어서 컴파일러, 어셈블러...

blog.naver.com

 

 

+JavaScript, 인터프리터 언어일까?
https://oowgnoj.dev/review/advanced-js-1

 

Comments