티스토리 뷰

반응형

 

 

 프로그래밍 언어의 특징

 

 

 

제네릭 프로그래밍

 

- generic이란 파라미터의 타입이 나중에 지정되게 해서 재활용성을 높일 수 있는 프로그래밍 스타일

 

ex) Java(1.5ver. 이후), C++(템플릿 기능 활용)

 

 

 

 

 

 

동적 타이핑(Dynamic Typing)

 

- 정적 타이핑과 달리 자료형을 컴파일이 아닌 런타임 시 결정하는 것으로, 자료형의 명시 없이 변수명만 가지고 선언 및 값을 전달하는 것이 가능하다.

 

- 런타임 당시에 타입에 대한 결정을 진행하므로 프로그래밍 하는 입장에서 편할 수 있지만, 한 편으로는 런타임 동안 예상치 못한 에러가 발생할 수 있고 이를 발견하는데 큰 어려움을 겪을 수 있다.

 

ex) Python, Ruby, Javascript

 

 

 

 

정적 타이핑(Static Typing)

 

- 자료형(type)을 컴파일 당시에 결정한다.

 

- 변수에 들어갈 값의 형태에 따라 자료형을 사전에 지정해야한다. 컴파일 진행 시 자료형에 맞지 않은 값이 전달되면 컴파일 에러를 발생시킨다.

 

- 컴파일 당시에 자료형에 대한 판단을 진행하기 때문에 속도가 빠르며, 타입 에러로 발생하는 문제점을 초기에 발견할 수 있는 장점이 있다.

 

ex) C, C++, Java, C#

 

 

 

 

 

 

 

Python의 특징

 

- Python은 기본적으로 동적 타이핑 언어이므로 제네릭이 필요 없다. 하지만 선언이 필요가 없기 때문에 가독성이 떨어지고 버그 발생 확률이 높아진다. 파이썬도 PEP(Python Enhancement Proposals)에서 추가된 타입힌트(Type Hints)를 통해 제네릭을 사용할 수 있게 되었다.(타입 명시 가능)

 

 

 

 

 

 

 

관련글

 

 

 

반응형
댓글