형식논리학 공부하면서,

프로그래밍도 같이 공부하는 수갤러임.


Typescript 라고 웹 개발에 엄청 많이 쓰이는 언어가 있는데,

그거 공부하다가 익숙한 단어를 발견함.


2ebcc077abc236a14e81d2b628f1716f5c90a3

'Soundness'


응? 뭐지? 내가 아는 그 건전성인가? 해서 클릭해 봤는데, 

맞음.


링크: https://www.typescriptlang.org/play/?strictFunctionTypes=false&q=136#example/soundness


2ebcc074abc236a14e81d2b628f1776deaacac

내가 이해한 내용을 요약해보면:

  • Type theory 를 모르면, type system 이 "sound" 하다는 게 무슨 의미인지 잘 모를 것이다.
  • "Soundness" 란, 컴파일러가 판단한 어떤 값의 type 과, 실제 프로그램을 실행했을 때 그 값의 type 이 일치한다는 것을 보장한다는 것이다.

즉, 이게 성립한다는 의미지? 따라서 위의 type system 이 sound 한 것이고.

(컴파일러의 코드 분석 프로그램) ⊢ "여길 지나는 값의 타입은 모두 T로 추론된다"
(코드를 기계어로 번역한 프로그램) ⊨ "여길 지나는 값의 타입을 체크해보니, 정말 모두 T이다"