일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개인서버
- CSS
- 개발
- WPF
- 프로그래밍언어론
- Java
- git
- plan
- 홈서버
- windows
- Mac
- 오답풀이
- bootcamp
- 프로그래밍 언어론
- html
- 자격증
- 정보처리기능사
- 개발공부
- C
- 220821
- 외부접속
- 매크로
- study
- php
- CodeIgniter
- knockon
- Developer
- 방화벽
- React
- 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 |