✏ 3_1 ~ 3_3 (P. 209~ P. 261)
컴파일 언어
소스코드를 컴파일하다 = 코드 실행전, 다른코드로 먼저 ‘번역’을 하다
소스코드 번역기 ⇒ 컴파일러
컴파일 하는데 시간이 소요 됨(= 사전 작업시간이 필요)
(+ 실행 시 매번 컴파일 해줘야 함
컴파일 이후, 오류 발견 시 다시 번역해야함
(+ 프로그램 업데이트 필요
*(+ 배포 ≠ 컴파일, 컴파일 이후 배포함.
자료형이 고정된 정적 타입
자바
인터프리터 언어
컴파일 과정 없이 바로 배포하는 언어 ⇒ 소스코드를 바로 실행
사용 시 마다 매번 번역해야함
각 문장 별로 번역해야하기 때문에 많은 시간이 소비 됨
(+ 프로그램 실행 속도가 느림
번역 시, 즉석으로 오류를 짚어줄 수 있음
(+ 프로그래밍 과정에서 오류 발견하기 어려움
자료형이 유동적인 동적 타입
파이썬
(+ 런타임, 런타임오류
런타임 : 배포 이후 실행되는 시점
런타임 오류 : 프로그램 실행 중 오류가 생기는 경우
프로그래밍 흐름 차이
절차지향(순차적인 실행에 초점)
Ex) C
객제지향(관계, 조직에 초점)
Ex) JAVA, C++, C#
*** 서로 대립되는 개념이 아님.**
함수형
(+ 스파게티 코드
: 소스코드가 복잡하게 얽힌 모습을 비유한
: 정상적인 작동을 하지만, 코드의 구조를 파악하기 어려운 코드를 부르는 명칭
(+ 변수는 개발자가 메인 메모리 공간에 올려놓은은 값으로, 언제든 값을 변경 가능 함 - 중간에 변수 값에 손을 대면 런타임 오류 발생 가능 - 이러한 사태를 방지하기 위해 변수를 사용하지 않고 다양한 작업을 할 수 있는 코드를 사용
Ex) 스칼라, 하스캘, 클로저, F#
메모리 관리
매니지드 언어(프로그래밍 언어가 메모리 관리)
언매니지드 언어(개발자가 메모리 관리)
Ex) C, C++, 어셈블리어
(+ JAVA & JVM
[ 3_3 확인문제 ]
스캔으로 올리는데 자꾸 흔들려서 스캔 되네요…ㅜㅜ
[ 절차지향 & 객체지향 & 함수형 프로그래밍 비교 ]
정리하는곳에 같이 정리 해놨습니다!