정적타입언어
-
마치며프로그래밍 언어 속 타입 2022. 5. 17. 15:40
이 글은 인사이트 출판사의 제안으로 작성 중인 책 『프로그래밍 언어 속 타입』 원고의 일부입니다. 프로그래밍 언어의 역사를 되돌아보면 정적 타입 언어는 끊임없이 발전해 왔다. 자바가 처음 나오던 1990년대만 해도 매개변수에 의한 다형성은 당연한 기능이 아니었다. 학계에서는 1960년대부터 매개변수에 의한 다형성에 대한 연구가 이루어졌지만, 현실에 적용되는 속도는 훨씬 느렸다. 매개변수에 의한 다형성은 기껏해야 하스켈 같은 일부 함수형 언어에서나 찾아볼 수 있었다. 객체 지향 언어에게는 서브타입에 의한 다형성이면 충분해 보였다. 하지만 만들려는 프로그램이 크고 복잡해질수록 개발자들은 정적 타입 언어에 더 많은 기능을 요구했다. 그 결과 자바에 매개변수에 의한 다형성이 추가되었고, 매개변수에 의한 다형성을..
-
1.8 다형성프로그래밍 언어 속 타입 2022. 5. 10. 23:33
이 글은 인사이트 출판사의 제안으로 작성 중인 책 『프로그래밍 언어 속 타입』 원고의 일부입니다. 큰 프로그램을 만드는 데 유용한 정적 타입 언어지만, 한 가지 단점만은 꽤 치명적이다. 바로 타입 검사기가 “거부”라고 틀리게 말하는 단점이다. 이 단점은 큰 프로그램을 만들든 작은 프로그램을 만들든 잘 드러난다. 게다가 이 단점은 절대로 완벽하게 해결할 수 없다. 앞에서 본 것처럼 타입 검사기가 “거부”라고 오판하는 경우가 반드시 존재한다. 튜링이 증명한, 아무리 시간이 지나도 바뀔 리 없는 사실이다. 그렇다고 아무런 방법도 없는 것은 아니다. 타입 검사기가 “거부”라고 잘못 말하는 경우를 줄이는 것만으로도 개발자의 불편이 줄어든다. 완벽하게 해결할 수는 없어도 단점을 최대한 작게 만드는 것이다. 현존하는..
-
1.7 정적 타입 언어의 장단점프로그래밍 언어 속 타입 2022. 5. 10. 23:29
이 글은 인사이트 출판사의 제안으로 작성 중인 책 『프로그래밍 언어 속 타입』 원고의 일부입니다. 지금까지 본 것처럼 정적 타입 언어는 여러 장점을 가지고 있다. 하지만 그 대가로 단점도 있다. 그러니 무조건 정적 타입 언어가 좋은 게 아니다. 동적 타입 언어를 사용하는 게 더 나은 경우도 분명 있다. 언제 정적 타입 언어를 사용하고 언제 동적 타입 언어를 사용해야 할까? 우선 지금까지 알아본 정적 타입 언어의 특징을 정리해 보자. 정적 타입 언어의 장점은 매우 다양하다. 정적 타입 언어로 코드를 작성하면 프로그램의 모든 타입 오류를 찾을 수 있다. 코드 편집기가 타입 검사 결과를 활용할 수 있으니 생산성을 높이기도 좋고, 불필요한 실행 중 검사를 없앨 수 있어서 프로그램이 좋은 성능을 내는 데도 유리하..
-
1.2 정적 타입 언어프로그래밍 언어 속 타입 2022. 5. 10. 01:08
이 글은 인사이트 출판사의 제안으로 작성 중인 책 『프로그래밍 언어 속 타입』 원고의 일부입니다. 타입 검사기는 누가 만들까? 아무리 타입 검사가 매력적이라 한들, 아무도 만들지 않으면 사용할 수조차 없다. 각 언어를 사용해 프로그램을 작성하는 개발자가 타입 검사기를 직접 만들어야 할까? 그럴 수는 없다. 타입 안전성을 갖춘 타입 검사기를 만드는 것은 어렵고 시간도 오래 걸리는 일이다. 타입 검사기를 만들 시간에 직접 버그를 찾는 게 차라리 빠를 테니 배보다 배꼽이 더 큰 격이다. 타입 검사기 제작은 언어를 만든 사람들의 몫이다. 언어 제작자가 언어를 설계할 때 타입 검사기도 같이 만든다. 그렇게 만든 타입 검사기는 개발자가 사용할 수 있도록 제공된다. 개발자는 타입 검사기를 사용해 자신의 프로그램이 타..