강타입 언어란 무엇인가?
강타입언어란 프로그래밍 언어에서 Integer(정수), String(문자열)과 같이 데이터의 타입을 미리 지정하는 언어입니다. 모든 상수 그리고 변수들은 데이터의 타입을 정의해주어야 합니다. 그리고 강타입 언어에서 method들은 특정 데이터 유형만 허용합니다.
강타입 언어는 서로 다른 데이터 타입의 혼합에 대해서 확고하게 제한을 합니다. 만약 위반사항이 일어나게 되면 예외가 발생합니다.
강타입 언어는 데이터 타입의 준수를 위한 컴파일러를 사용합니다.
Java의 간단한 예시를 들고 왔습니다.
AddCalculator라는 클래스가 있으며 baseNumber, name 변수 모두 데이터 타입을 지정해 주었습니다.
AddCalculator는 printInfo라는 메서드를 가지고 있는데 int 자료형만 받을 수 있습니다.
main 메서드에 보시면 int 자료형이 들어갔을 땐 별다른 문제가 없지만, String 자료형이 들어가는 경우 컴파일 에러가 발생합니다.
강타입 언어의 장단점
장점
- 엄격한 규칙을 통한 결과의 일관성을 보장
- 컴파일 에러를 통한 런타임 에러 방지
- 컴파일러를 통한 조기 에러 감지 및 최적화된 코드를 통한 개발 가속화
단점
- 유연성의 감소
- heterogenoeous 객체에 대한 collection의 정의의 어려움
강타입 언어 vs 약타입 언어
컴퓨터 프로그래밍에 있어 데이터 타입에 대한 명세를 요구한다면 강타입 언어, 별다른 명세를 요구하지 않는다면 약타입 언어라고 할 수 있습니다. 약타입 언어의 경우 runtime에 암시적으로 타입의 변환을 실행 할 수 있기 때문에, 잘못되거나 예측 불가능한 결과를 생산할 수 있습니다.
강타입 언어 / 약타입 언어의 종류
[강타입 언어]
- C
- C ++
- C#
- Java
- Pascal
- Python
- TypeScript
[약타입 언어]
- C
- JavaScript
- Perl
- PHP
- Ruby
- shell
출처
'CS 지식' 카테고리의 다른 글
PubSub 구조에 대해서 (0) | 2023.05.07 |
---|---|
REST API에 대해서 (0) | 2023.05.04 |
Polling / Long Polling / Server Sent Event / Web Socket (0) | 2023.05.02 |
OSI 7계층 TCP / IP 4계층 (0) | 2023.04.21 |