CS

정적 프로그래밍 언어 & 동적 프로그래밍 언어

SeaPlus 2021. 7. 1. 15:35

[정적 프로그래밍 언어(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