본문 바로가기
TechKnowledge/CS관련지식

IT 지식 독서요약 47,51 자바스크립트와 파이썬은 어떻게 작동할까?

by 김코딩개발자 2022. 6. 13.

자바스크립트

  • 브라우저가 웹페이지에서 자바스크립트를 발견하면(예를 들어 , <script> 태그를 만나면) 프로그램의 텍스트를자바스크립트 컴파일러로 전달한다
  • 컴파일러는 프로그램에 에러가 있는지검사하고 , 프로그램을 모형 컴퓨터처럼 만들어 낸 컴퓨터의 어셈블리 언어 명령어로 컴파일한다 .
  • 모형 컴퓨터 같은 시뮬레이터를 실행하여 자바스크립트 프로그램이 수행하기로 되어 있는 모든 기능을수행한다. 시뮬레이터와브라우저는 밀접하게 상호작용한다 .

자바스크립트는 싱글쓰레드 언어이다 호출스텍이 한개이기 때문에 1회에 1개의 작업을 처리하는 구조이다

함수는 호출스텍의 가장 윗쪽에서 먼저 처리된다

그렇기에 브라우저 이미지 작업을 자바스크립트로 진행할때 엄청긴 함수가있다면
브라우저는 작업을 처리하지못하고 대기상태가 됩니다. 이런경우 함수작업때문에 페이지를 못그리고 코드 실행이 되지않습니다. 

파이썬

  • 파이썬을 실행할 때는 프로그램의 텍스트가 파이썬 컴파일러로 전달된다.
  • 컴파일러는 프로그램에 에러가 있는지 검사하고 , 프로그램을 모형 컴퓨터처럼 만들어 낸 컴퓨터(더많은 레퍼토리를 가진 가상머신)의 어셈블리 언어 명령어로 컴파일한다 .
  • 컴파일러는파이썬 프로그램이 하기로 되어 있는 모든 동작을 수행하고자 가상 머신을 실행한다.
  • 가상 머신
    (가상 머신은 키보드나 인터넷에서 데이터를 읽거나 화면예출력을 표시하는 것 같은 작업을 하기 위함 )

파이썬 구현체는 인터프리터 안에 컴파일러를 내장하고 있습니다

CPython

  • 파이썬을 C언어로 구현한 구현체
  • 인터프리터이면서 컴파일러
  • 파이썬 코드를 컴파일해서 bytecode로 바꾸고 인터프리터가 실행
  • .py 파일을 실행하면 .pyc파일이 생성(cpython이 컴파일한 bytecode 들어있음)
  • GIL(Global interpreter lock) 사용

Jython

  • 파이썬 코드를 java bytecode로 만들어서 JVM에서 실행될 수 있도록 함
  • .py파일을 .class 파일로 컴파일

PyPy3

  • python 자체로 구현
  • JIT 컴파일(프로그램을 실행하는 시점에서 필요한 부분을 즉석으로 컴파일하는 방식) 도입해서 Cpython보다 빠름