| sitelink1 | |
|---|---|
| sitelink2 | |
| sitelink3 | |
| sitelink4 | |
| sitelink5 | |
| sitelink6 | 
| 1) "바이트코드"와 가상기계에 대해서 JDK를 설치하면 자바 컴파일러와 JVM이 같이 설치된다. 자바 컴파일러는 "플랫폼에 맞춘 자바 실행 시간환경"에서 실행될 "이진 바이트코드 포맷"을 만들어 낸다. 따옴표로 묶인 두 가지 말속에는 아름다움, 힘, 기능이 담겨 있다. 바이트코드는 본질적으로 코드의 중간형태이다. 다시 말해서 비교적 잚은 자바 언어 문장 집합에서 컴퓨터에서 거의 실행 준비 단계인 긴 중간 기계 명령 집합까지로 구성된다. 다른 말로 하면, 바이트코드 포맷은, 특수한 유형의 컴퓨터와 운영 체제에 적용하는 일부 기계어를 제외하고 보통 컴파일러가 수행하는 토큰화와 코드 생성 작업의 상당부분을 포함하고 있다. 이제 실행 시간 환경이 나설 차례이다. 자바 실행 시간 환경은 자바 컴파일러를 완전히 컴파일된 코드 80%를 취하고, 측정 컴퓨터에서 코드를 실행하는데 있어 플랫폼에 의존적인 나머지 20%를 추가한다. 자바는 수행 도중 자바 바이트코드를 읽고 번역함으로써 이 작업을 수행한다. 바로 이 점이 자바는 컴파일도 되고 해석(interpret)도 된다는 이유이다. 특정 기계에 대해 컴파일한 프로그램은 자바 바이트코드와 같이 중간 형태로 컴파일한 것보다 의심할 여지 없이 더 효율적이기 때문에, 이 구조에서는 성능에 약간의 제한이 따른다. 하지만 이러한 접근 방법에는, 이러한 비효율성을 별 대수롭지 않게 만드는 두 가지 놀라운 이점이 있다. ① 개발자들이 여러 플랫폼에 대해 별도의 버전을 만들어야 할 필요 없이, 자바가 지원하는 모든 플랫폼에 자바 애플리케이션을 만들 수 있다. 대부분 언어의 경우, 여러 플랫폼을 위한 개발은 엄청난 시간이 필요할 것이다. ② 해당 플랫폼에 대한 자바 실행 시간 환경을 사용할 수 있게 되면, 곧바로 자바 애플릿과 애플리케이션을 사용할 수 있다. 2) "컴파일러"와 "인터프리터"에 대하여 컴파일러는 고급 언어 프로그램을 기계어 프로그램으로 번역해 주는 특별한 프로그램이다. 이 프로그램은 고급 언어 프로그램의 각 문장을 적당한 일련의 기계어 명령으로 바꾸어 준다. 컴파일러는 프로그램 전부를 실행 전에 한꺼번에 번역한다. 이에 비해 인터프리터는 프로그램을 한 문장씩 기계어로 번역한다. 이것은 고급 명령어에 대한 해당 기계어 정보를 주는 내장 사전(built-in dictionary)을 이용, 프로그램을 한 줄 씩 번역하는 것을 뜻한다. 인터프리터 언어(interpreted language)를 사용하면 미숙련 프로그래머가 프로그램을 실행 시간동안 고치고 개선하기가 용이하다. 컴파일러를 사용하면 프로그램은 고칠 때마다 다시 번역되어야 한다. 그러나 인터프리터는 문장들이 나타날때마다 매번 번역을 하여야 하기 때문에 느리고, 반면에 컴파일러는 매번 번역할 필요는 없다. 초보자용 언어BASIC번역기의 반 정도가 인터프리터이고, 나머지 반은 컴파일러이다. 인터프리터가 등장한 시기는 컴퓨터의 입력장치가 카드천공방식이었다. 때문에 매우 느린 입력방식에 의해 소요되는 어마어마한 비용(?)과 시간은 당시에는 프로그래밍이라는 것에서 디버깅이라는 작업이 얼마나 값비싼 작업이었는지 유추할 수 있다. 그리고 아직도 디버깅이라는 작업에 있어서 컴파일과 인터프리터의 그러한 장단점을 이용하고 있다. | 
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 | 
|---|---|---|---|---|
| 26 | 셋째날 - 패키지, 상속, 접근제어 | 황제낙엽 | 2003.04.14 | 728 | 
| 25 | 둘째날 - 클래스, 메서드, 연산자 | 황제낙엽 | 2003.04.14 | 651 | 
| 24 | 첫째날 - 자바의 특징과 DATA TYPE | 황제낙엽 | 2003.04.14 | 667 | 
| 23 | Polymorphism과 Method Overriding에 대한 이야기 | 황제낙엽 | 2003.05.15 | 502 | 
| 22 | 자바의 특징 | 황제낙엽 | 2003.05.06 | 640 | 
| » | JVM (Java Virtual Machine)에 대한 몇가지 설명 | 황제낙엽 | 2003.05.06 | 453 | 
| 20 | 자바설화 | 황제낙엽 | 2003.05.03 | 607 | 
| 19 | XML기반 정보 보호 기술의 대두 | 황제낙엽 | 2003.04.22 | 512 | 
| 18 | 인터넷을 통한 자바 기술의 변화 | 황제낙엽 | 2003.04.07 | 696 | 
| 17 | JAVA관련 용어와 기술 | 황제낙엽 | 2003.04.05 | 661 | 
| 16 | UTF-8을 위한 문자열 인코딩처리 관련 | 황제낙엽 | 2006.10.06 | 1081 | 
| 15 | Code Conventions for JavaTM Programing Language   | 황제낙엽 | 2006.10.23 | 702 | 
| 14 | 자바에서 UTF-8 개발에 관한 정리 (2) | 황제낙엽 | 2006.10.06 | 798 | 
| 13 | 자바에서 UTF-8 개발에 관한 정리 (1) | 황제낙엽 | 2006.10.06 | 745 | 
| 12 | 일본어 전각 반각 변환 예제 소스 .두번째
					[1]   | 황제낙엽 | 2007.01.11 | 780 | 
| 11 | 일본어 전각 반각 변환 예제 소스 .첫번째   | 황제낙엽 | 2007.01.10 | 3685 | 
| 10 | 환경파일 로드 클래스 구성 (XML파싱) | 황제낙엽 | 2007.01.05 | 781 | 
| 9 | HttpURLConnection을 사용하여 웹 페이지 액세스하기 (두번째) | 황제낙엽 | 2007.01.05 | 766 | 
| 8 | 자바의 I/O 예제 [1]   | 황제낙엽 | 2006.12.28 | 547 | 
| 7 | HttpURLConnection 클래스를 이용한 Search | 황제낙엽 | 2006.12.28 | 856 | 
 
							