-
『프로그래밍 언어 속 타입』(가제) 책 소개프로그래밍 언어 속 타입 2022. 5. 3. 14:47
안녕하세요. KAIST 전산학부 프로그래밍 언어 연구실의 홍재민입니다. 현재 류석영 교수님의 지도 아래 박사 과정을 진행 중입니다. KAIST 학부 『프로그래밍 언어』 과목의 조교로 활동 중이며, 해당 과목의 교과서인 『Introduction to Programming Languages』를 집필했습니다.
인사이트 출판사의 제안으로 프로그래밍 언어에 관한 책을 쓰게 되었습니다. 책의 제목은 『프로그래밍 언어 속 타입』(가제)으로, 타입 검사의 필요성을 소개하고 타입 검사를 잘 사용할 수 있도록 도와주는 여러 기능을 설명하는 책입니다. 학생과 현직 개발자 모두를 대상으로 작성한 책이며, 어느 정도의 프로그래밍 경험(클래스를 정의하고 객체를 사용하는 정도)이 있다면 누구나 읽을 수 있습니다. 타입 검사를 잘 다루고 싶지만 어려움을 느꼈던 사람과 타입을 좋아하지만 체계적으로 정리된 자료를 찾지 못해 공부하는 데 어려움을 느꼈던 사람들에게 특히 추천합니다.
출판사에서 원고를 웹 사이트에 올리는 것을 허락해 주셔서 작성한 원고를 여기에 올리게 되었습니다. 단, 실제 출판 시에는 내용이 일부 바뀔 수 있으며, 출판 일정은 아직 정해지지 않았습니다. 책의 목차 및 책의 각 절로 가는 링크는 밑에 있습니다. 글을 읽다 궁금한 점을 댓글로 질문해 주시면 답해 드리겠습니다. 제 글이 타입과 친해지는 데 도움이 되면 좋겠습니다. 또한, 더 나은 글을 위한 다양한 의견은 언제든지 환영입니다. 주신 의견을 출판 전까지 원고에 최대한 반영할 수 있도록 노력하겠습니다. 감사합니다.
1 타입 검사
1.1 타입 검사
1.2 정적 타입 언어
1.3 타입 검사의 원리
1.4 타입 검사 결과의 활용
1.5 타입 추론
1.6 더 세밀한 타입
1.7 정적 타입 언어의 장단점
1.8 다형성
2 서브타입에 의한 다형성
2.1 객체와 서브타입
- 이름에 의한 서브타입
- 구조에 의한 서브타입
- 추상 메서드
2.2 집합론적 타입
- 최대 타입
- 최소 타입
- 이거나 타입
- 이면서 타입
2.3 함수와 서브타입
3 매개변수에 의한 다형성
3.1 제네릭 함수
- 제네릭 메서드
- 타입 인자 추론
- 힌들리-밀너 타입 추론
3.2 제네릭 타입
- 제네릭 클래스
3.3 무엇이든 타입
3.4 무엇인가 타입
4 두 다형성의 만남
4.1 제네릭 클래스와 상속
4.2 타입 매개변수 제한
- 재귀적 타입 매개변수 제한
4.3 가변성
- 정의할 때 가변성 지정하기
- 사용할 때 가변성 지정하기
5 오버로딩에 의한 다형성
5.1 오버로딩
- 가장 특화된 함수
- 메서드 오버로딩
5.2 메서드 오버라이딩
- 메서드 선택의 한계
- 메서드 오버라이딩과 결과 타입
5.3 타입클래스
5.4 카인드
마치며
'프로그래밍 언어 속 타입' 카테고리의 다른 글
『타입으로 견고하게 다형성으로 유연하게: 탄탄한 개발을 위한 씨줄과 날줄』책 출간 (3) 2023.10.20 시작하며 (2) 2022.05.03