이성호 교수님
프로그램 : 일종의 명령서
프로그램 실행 : 컴퓨터가 명령서에 따라 명령을 수행하는 과정
사람은 자연어를 쓰고 컴퓨터는 기계어를 사용 해서 의사소통 불가
-> 컴파일 : 프로그램을 번역하는 과정
프로그래밍 언어란
사람이 프로그램을 작성할 떄 사용하는 언어
구문 구조: 프로그래밍 언어 구문의 생김새
의미 : 프로그래밍 언어 구문의 동작
번역 프로그래밍 언어 : 컴파일러에 의해 번역되느 프로그래밍 언어
- 번역 과정에서 다양한 안정성 검증 과정을 수행
- 번역 과정에서 다양한 최적화 과정을 수행
- 컴파일러의 안정성 검증을 통과해야 하므로 상대적으로 어렵고 자유고가 낮음
- 안정성 검증 및 최적화 수행으로 프로그램의 성능 및 안정성 보장
- c/c++ , java, ocaml 등
해석 프로그래밍 언어 : 해석기에 의해 해석, 실행되는 프로그래밍 언어
- 번역 과정이 없으므로 안정성 검증과 최적화를 수행하지 않음
- 안정성 검증 과정이 없어 상대적으로 학습이 쉽고 자유도가 높음
- 오류 발생시 탐지가 어렵고 해석기를 거쳐 실행되므로 성능이 대체적으로 낮음
- Python, Javasript 등
프로그래밍 언어 패러다임
- 프로그래밍 언어마다 추구하는 패러다임이 존재
- 명령형 언어: 프로그램의 상태를 변화시키는 서술을 순차적으로 수행하여 명령을 수행
- 절차지형 언어 : 서술의 연속으로 구성되는 절차를 정의하고 이를 통해 명령을 수행
- 함수형 언어 : 입력과 출력의 매핑의 함수의 조합과 적용으로 프로그램을 구성
- 객체지향 언어: 상태와 행동을 갖는 객체들의 관계로 프로그램을 구성
한 언어가 여러 언어일수 있다. ex) javascript : 명령형언어이면서 절차지향언어
Java Programming Language
- java는 대표적인 객체지향 프로그래밍 언어
- 하드웨어 및 운영체계에 독립적인 특성 ( Wrinte Once, Run Anywhere)
- 자동메모리 관리를 수행
java는 번역 언어
- java 프로그램은 컴파일러를 통해 java bytecode로 번역
- java bytecode는 java 가상기계(jvm) 에 의해 해석 & 실행
java가 해석 프로그래밍 언어이면서 번역 프로그래밍 언어인 이유
기계, 운영체제에 따라 기계어가 서로 다르기 때문
ex) 기계마다 기계어 해석이 다르다
java bytecode를 해석할 수 있는 해석기를 각각 고용하여 프로그램 해석(wora)
-> 결국 모든 기계, 운영체계에 맞는 해석 가능
Java 개발환경 구축
- java development kit (jdk)
- java 프로그램 개발에 필요한 도구들과 jre(jvm과 실행에 필요한 라이브러리로 구성)로 구성
java 프로그램 컴파일
- java 컴파일러, javac 를 사용하여 프로그램 컴파일
프로그램의 배포
- 실행 가능한 java archive 생성 (excutable jar)
- 여러 개의 bytecode 파일을 하나의 압축파일로 엮음
Manifest 파일을 통한 프로그램 시작점 지정
터미널을 통한 개발은 어렵고 복잡
->통합개발 황경의 사용
통합개발 환경( intergrated Development Environment, IDE)
- 프로그램 작성, 컴파일, 디버깅, 배포 등 프로그램 개발의 복잡한 절차 보조 도구
- 기본적인 구문 오류 및 간단한 의미 오류 등을 탐지
'CNU > 2023 CNU SW 아카데미' 카테고리의 다른 글
[CNU SW 아카데미] 특강 (23-02-17) (0) | 2023.02.17 |
---|---|
오전 수업(객체지향) (0) | 2023.02.16 |
[CNU SW 아카데미] 프로그래머스 오프라인 수업 (23-02-08) (0) | 2023.02.08 |
[CNU SW 아카데미] 네이버 클라우드 특강1 (23-02-06) (0) | 2023.02.06 |
[CNU SW 아카데미] 오전 수업 OS (0) | 2023.02.06 |