일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #크랙미3번
- #크랙미4번
- #크랙미 9번
- #abex크랙미
- #크랙미
- #크랙미 10번
- #심플즈 크랙미
- #심플즈
- #파밍
- 리버싱
- #abex크랙미4번
- #크랙미2번
- Easy
- java8
- #크랙미 5번
- GraphQL
- #보안이슈
- Spring
- leetcode
- #보안뉴스
- springframework
- #리버싱
- #고클린
- #abex
- java
- Today
- Total
Halo World
컴파일러, 인터프리터, 하이브리드 본문
| 컴파일러
- 원시 프로그램, 고급언어로 작성된 문장을 처리하여 기계어 또는 컴퓨터가 사용할 수 있는 코드(목적 프로그램)으로 번역해주는 프로그램
- 프로그램 전체를 한꺼번에 번역 후 실행
- 목적 프로그램 생성으로 메모리 사용
- 컴파일러에 의해 번역된 프로그램은 언제든지 실행될 수 있는 실행 가능한 프로그램
- 번역 속도 느림
- 실행 속도 빠름
- 디스크에 저장됨
- 특정 시스템에서 번역된 실행파일이 다른 시스템에서는 실행되지 않는다
- 사용 예 : C, 포트란
| 인터프리터
- 고급 언어로 작성된 명령문을 한번에 한 줄씩 번역하고 실행하는 프로그램
- 메모리 사용하지 않음
- 주요 스크립트 언어에서 대부분 사용 (웹이 작동하는 방식이 전형적인 인터프리터 기법)
- 목적 프로그램 생성하지 않음
- 배우기 쉽고, 이식성이 뛰어남
- 번역 속도 빠름
- 실행 속도 느림
- 프로그램 자체가 공개됨
- ROM에 저장됨
- 사용 예 : 베이식, 자바스크립트, HTML, ASP, PHP, Perl
| 하이브리드 기법
- 컴파일 기법 + 인터프리트 기법을 모두 사용
- 사용자에 의해 작성된 프로그램이 컴파일러에의해 중간코드로 변환되고, 이는 다양한 형태의 서로 다른 시스템에서 인터프리터에 의해 직접 실행
* 중간코드 : 컴퓨터에서 직접 실행될 수 없는 코드로서 컴퓨터 하드웨어에 독립적인 코드
- 이식성이 뛰어남
- 한번 작성된 프로그램은 어떤 컴퓨터 시스템에서든지 즉시 실행 가능
- 인터프리트 방식의 단점인 소스프로그램의 공개과 컴파일러 방식의 단점인 특정 컴퓨터에 종속적이라는 단점을 해결
- 최근의 언어에 주로 사용
- 사용 예 : JAVA, C#
'개발 지식 > JAVA' 카테고리의 다른 글
접근 제한자 (0) | 2017.06.03 |
---|---|
싱글톤(Singleton) (0) | 2017.06.03 |
객체 지향 프로그래밍의 특징(캡슐화, 상속, 다형성) (0) | 2017.06.02 |
JSP 모델1, 모델2 개념과 장단점 (0) | 2017.06.01 |
MVC 패턴이란? (0) | 2017.06.01 |