hojeomi blog
Day 1. 파이썬 개요 본문
1. 플랫폼 독립적인 인터프리터
- 플랫폼 = OS, 운영체제
- 독립적인 = OS에 상관없이 한번 프로그램을 작성하면 사용가능
- 인터프리터 = 소스코드를 바로 실행할 수 있게 지원하는 프로그램 실행 방법
- 즉, 파이선은 플랫폼에 독립적이기에 적절한 인터프리터만 설치되어 있으면 돌아간다.
2. 컴파일 언어 vs. 인터프리터 언어
- 컴파일
- 소스코드를 기계 또는 가상머신이 이해할 수 있는 언어로 변경하는 행위
- '컴파일러'라는 프로그램을 사용 - CML(Command Line), IDE(통합개발환경, 예) 비주얼 스튜디오)
- 컴파일 언어
- 소스코드 → 컴파일러(변환) → 기계어(exe파일) → 실행
- 소스코드를 기계어로 먼저 번번(변환) 후 해당 플랫폼에 최적화되어 프로그램 실행
- 다양한 최적화 가능
- 오프라인 컴파일러가 고수준 언어를 네이트브 코드로 컴파일
- 플랫폼마다 다른 exe 파일을 컴파일해야 함
- 실행속도 빠름, 코드 작성이 오래걸림, 한번에 많은 기억장소 필요
- 예) C, C++
- JIT(Just-In-Time) 컴파일언어
- 소스코드 → 컴파일러 -> 중간언어 코드(Intermediate language code)(exe파일 형태이지만 실제 exe파일은 아님) -> 실행
- 오프라인 컴파일러가 소스코드를 중간언어로 컴파일
- 플랫폼 별로 VM(virtual machine, 가상머신) 설치 필요
- 프로그램 실행 중에 VM이 중간언어를 기계가 이해하는 언어로 바꿔서 실행
- Java나 C#은 플랫폼에 종속적이지 않고 VM에 종속적임
- 예) Java, C#, WASW(WebAssembly)
- 인터프리터 언어
- 소스코드 -> 인터프리터 -> 실행
- 별도의 번역과정 없이 소스코드를 실행시점에 해석하여 컴퓨터가 처리할 수 있도록 함
- 실행 중에 고수준 언어를 네이티브 코드로 바꿔서 실행
- 실제로 실행하기 전까지 코드의 문제를 잡아낼 수 없음(이유: 오프라인 컴파일러가 없어서)
- 예) Java Script, Python, Lua, PHP
3. 객체 지향 동적 타이핑 언어
- 객체 지향적 언어
- 실행 순서가 아닌 단위 모듈(객체) 중심으로 프로그램 작성
- 하나의 객체는 어떤 목적을 달성하기 위한 행동(method)와 속성(attribute)을 가지고 있음
- 동적 타이핑 언어
- 프로그램이 실행하는 시점에(컴파일 시점이 아니라) 프로그램이 사용해야할 데이터에 대한 타입을 결정함
- [참고] 정적 타이핑 언어
- 자료형(type)을 컴파일 시 결정
- 변수에 들어갈 값의 형태에 따라 자료형 지정
- 예) C언어 - int num = 1;
- 예) C, C#, Java, C++
* 고수준 언어: 인간이 이해하기 쉬운 언어, 컴퓨터가 이해하는 기계어로 변환 필요
저수준 언어: 네이트브 코드, 0과 1로만 이루어짐, 변환과정 필요 없음
'AI > Course' 카테고리의 다른 글
3-2. Pythonic Code (0) | 2021.01.21 |
---|---|
Day 3-1. Python Data Structure (0) | 2021.01.20 |
Day 2. 파이썬 기초 문법 (2) | 2021.01.19 |
Day 0-2. 윈도우 Terminal - cmder, Windows Terminal (0) | 2021.01.18 |
Day 0-1. File System & Terminal Basic (0) | 2021.01.18 |
Comments