[정적 프로그래밍 언어(static language)]
● 프로그래밍 언어에서 변수의 자료 유형을 프로그램 번역시간(compilation)에 확정하여 실행시간(execution time) 동안 유지하는 언어. 정적 타입 언어라고도 한다.
● 종류: c, java, c++ …
● 장점: 동적 언어에 비하여 정적 언어는 컴파일러가 프로그램을 번역할 때, 변수의 자료 유형을 한 번 점검하여 필요한 실행코드를 작성하기 때문에 실행 때는 자료 유형을 점검하지 않고 그대로 실행할 수 있다.
동적 언어는 인터프리터(interpreter)가 프로그램을 번역하지 않고 그대로 실행하는데, 프로그램에서 변수가 사용될 때마다 자료 유형을 점검하여 필요한 작업을 수행하면서 실행한다. 따라서 정적 언어는 프로그램이 반복해서 실행될 때 동적 언어에 비하여 프로그램을 실행하는 효율이 매우 좋다
정적 언어는 자료 유형과 관련한 오류검증을 번역시간에 할 수 있어서 신뢰도가 높다.
● 단점: 동적 언어에 비해 프로그래밍을 유연하게 하기 어렵다. 자료유형이 달라져도 같은 프로그램으로 실행할 수 있는 일반화 프로그램을 자연스럽게 작성할 수 없다.
예) “실수 3.4 + 실수 3 = 실수 6.4”
[동적 프로그래밍 언어(Dynamic language)]
● 프로그래밍 언어에서 동적(dynamic)이란 객체의 속성을 프로그램 실행시간에 설정한다는 의미다. 즉, 동적 언어란 변수의 자료 유형을 프로그램 실행 중에 정하거나 변경하는 언어를 말한다.
● 종류: Java script, Python, PHP
● 장점: 프로그래머가 변수의 자료 유형을 고려하지 않아, 쉽고 간결한 프로그래밍 가능
● 단점: 자료 유형 설정 실수로 인한 오류가 발생하기 쉽다. 변수의 자료 유형에 따라 다양한 크기의 기억장소가 필요하고 변수의 자료 유형을 사용할 때마다 추적해야 하기 때문에 동적 타입 바인딩(binding) 비용이 많이 든다.
예)” 3.4 + 4 = 6.4”
'CS' 카테고리의 다른 글
Kernel(커널) (0) | 2021.07.02 |
---|---|
컴파일러 & 인터프리터 (0) | 2021.07.01 |
클라이언트 사이드 & 서버 사이드 (0) | 2021.07.01 |
서버(SERVER) (0) | 2021.06.30 |