- 저급언어
기계어 1000 1010 → MOV 어셈블리어
기계어 1000 1100 → ADD 어셈블리어
· 어셈블러(assembler) : 어셈블리어를 기계어로 번역하는 프로그램
- 고급언어
· 사람 기준으로 이해하기 쉬운 언어, 현재는 대부분의 언어가 고급 언어임 → C/C++, Java
- 영화 히든 피겨스 (2017)
"포트란은 새로운 프로그램 언어로서 프로그래머가 컴퓨터와 소통할 때 사용한다. 미래의 물결처럼 놀라운 기술이다."
- Green project
· 썬마이크로시스템즈 社에서 1990년초 양방향 TV를 만드는 제어박스의 개발 프로젝트로,
초기에는 객체지향 먼어로 C++ 언어를 사용하였으나,
C++의 비효율성으로 인하여 오크(Oak)라는 언어를 직접 개발
- Java
· 1993년 인터넷과 웹이 엄청난 속도로 발전
· 1995년 발표된 객체 지향 프로그래밍 언어로 제임스 고슬링(James Gosling)이 개발
· 인터넷 이용에 적합하도록 만들어져서 현재까지 여러 분야에 사용되는 프로그래밍 언어로 발전
· 2009년 썬마이크로시스템즈 社는 오라클(Oracle)에 합병
- 자바의 특징
· 단순하다 - 포인터가 없으며 메모리 관리가 용이
· 객체지향 언어 - 클래스와 객체를 중심으로 프로그램을 개발
· 시스템에 독립적 - 하나의 플랫폼에서 만든 자바 프로그램을 다른 플랫폼에서 추가 작업 없이 실행 가능
· 번역 언어 - 자바의 프로그램 소스는 중간 코드인 바이트 코드로 변환되고,
바이트 코드는 자바 가상 기계에서 인터프리터의 도움을 받아 실행
- 자바 가상 머신의 필요성
· 다른 프로그래밍 언어는 플랫폼에 종속적임
- 하드웨어 아키텍처(CPU)에 따라 사용하는 기계어 종료가 상이함
- OS마다 사용하는 응용 프로그래밍 인터페이스(API)와 실행 형식이 다름
· 프로그램을 실행하려면 운영체제가 제어하는 메모리를 사용해야 하는데,
운영체제마다 메모리를 관리하는 방식이 다름
- 자바는 자바가상머신(JVM)을 사용하기 때문에 플랫폼에 독립적임
· 일반 프로그램 소스코드 → 컴파일러 → 이진코드 → OS/HW
· 자바 프로그램 소스코드(HelloWorld.java) → 컴파일러 → 바이트코드(HelloWorld.class)
→ API/JVM(자바플랫폼) → OS/HW
- Windows JVM → Windows 실행파일 → Windows PC
- Linux JVM → Linux 실행파일 → Linux PC
- Mac JVM → Mac 실행파일 → 맥킨토시
'cs > java-spring-boot' 카테고리의 다른 글
[Zero-base] 1-6. 변수와 자료형 (0) | 2022.01.11 |
---|---|
[Zero-base] 1-5. 필드와 메소드 정의 (0) | 2022.01.11 |
[Zero-base] 1-4. 자바 구조와 문장 (0) | 2022.01.11 |
[Zero-base] 1-3. 파일 확장자와 자바에서 사용하는 파일들 (0) | 2022.01.11 |
[Zero-base] 1-2. 자바 개발 환경 구축 및 JDK 설치 (0) | 2022.01.11 |