| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- knockon
- 홈서버
- 개발
- git
- windows
- 프로그래밍언어론
- Mac
- plan
- 오답풀이
- 자격증
- bootcamp
- study
- 220821
- 외부접속
- CSS
- CodeIgniter
- React
- 매크로
- C
- 개인서버
- 개발공부
- 정보처리기능사
- Developer
- html
- php
- Java
- 방화벽
- WPF
- cording
- 프로그래밍 언어론
- Today
- Total
bunta의 보조기억장치
[프로그래밍 언어론] 2-2 프로그램 동작 원리 본문
컴퓨터 동작 원리
- 전원: 운영체제 적재(저장장치 → 메모리) → 수행
- CPU는 인출 → 해석 → 실행 주기를 반복하여 메모리에 적재된 명령어를 실행
프로그래밍 언어 구현이 필요한 이유
기계어
→ CPU가 이해하고 수행하는 명령어
→ 이진수 형태의 명령어를 사람이 이해하는 것은 매우 난해
어셈블리어
→ 기계어에 거의 일대일 대응하는 형태의 기호 언어
→ CPU에 종속적 → 이식성이 거의 없음
A 회사의 CPU에서 작동하는 명령어가 B 회사의 CPU에서는 작동하지 않음
고급 프로그래밍 언어
→ 사람에 가까운 표현으로 프로그램을 나타냄
→ 특정 기계에 종속적이지 않음
→ 프로그램을 CPU가 이해할 수 있는 기계어로 변환해주어야 함
소스 프로그램을 컴파일러를 통해 목적 프로그램으로 번역해주어야 함
또는 인터프리터를 통해 소스 프로그램을 한줄씩 변환하여 동작
* 소스 프로그램: 프로그래머가 작성한 프로그램
* 목적 프로그램: 컴퓨터 하드웨어가 수행할 수 있는 프로그램
프로그래밍 언어의 구현 방법
인터프리터
→ 프로그래밍 언어로 작성된 고수준의 명령을 하나씩 해석하여 수행하는 프로그램
→ 인터프리터는 CPU의 인출 → 해석 → 실행 주기를 흉내 냄
컴파일러
→ 프로그램을 CPU가 수행할 수 있는 형태로 바꾸어서 CPU가 실행
→ 인터프리터가 하는 해석 과정을 미리 모두 수행하여 소스 프로그램을 전부 기계어 코드로 만들어 냄
실행 시간이 빨라야 하는 프로그램의 경우 인터프리터보다 효율적
→ 상용 프로그램은 컴파일 방식으로 번역한 후 판매
판매자 측에서는 소스 프로그램을 숨길 수 있는 이점이 있음
하이브리드 구현
→ 인터프리터 방식과 컴파일러 방식을 조합한 방식
→ 대표적으로 Java가 있음
→ 중간코드까지 컴파일한 후(기계어에 매우 유사함) 인터프리터(가상기계 [VM])를 통해 해석
한국방송통신대학 [프로그래밍 언어론] 강의 필기입니다.
'Study > 필기' 카테고리의 다른 글
| [프로그래밍 언어론] 3-3 여러 패러다임의 프로그램 예 (0) | 2022.10.05 |
|---|---|
| [프로그래밍 언어론] 3-2 프로그래밍 언어의 패러다임 (0) | 2022.10.05 |
| [프로그래밍 언어론] 3-1 프로그래밍 패러다임 (0) | 2022.10.04 |
| [프로그래밍 언어론] 2-3 프로그래밍 언어의 평가 기준 (0) | 2022.10.04 |
| [프로그래밍 언어론] 2-1 프로그래밍 언어의 발전 (1) | 2022.10.04 |