Topics in Programming Languge: Theory

À̱¤±Ù Kwangkeun Yi
(¼ÒÇÁÆ®¿þ¾î¹«°áÁ¡ ¿¬±¸¼¾ÅÍ)/ ÇÁ·Î±×·¡¹Ö ¿¬±¸½Ç/CSE/Seoul National University

°­ÀÇ: È­/¸ñ 14:00-15:15 @ 302µ¿ 309-1È£

¸ñÇ¥ Objectives

ÇÁ·Î±×·¡¹Ö¾ð¾î ¿¬±¸¿¡¼­ ´Ù·ç´Â °³³äµéÀ» ÀÍÈ÷¸é¼­ ¼¼ °¡Áö ´É·ÂÀ» ±â¸¥´Ù:

  • Çٽɸ¸´Ù·ç±â(abstraction): ²À ÇÊ¿äÇÑ °Í¸¸ µå·¯³»´Â ´É·ÂÀÌ´Ù. ±×·¡¼­ ±º´õ´õ±â¿¡ ¹æÇعÞÁö¾Ê°í Çٽɸ¸ ÆÄ´Â ´É·ÂÀÌ´Ù.
  • ¶¼¾î³õ°í´Ù·ç±â(modularity): µ¶¸³µÈ ºÎǰÀ¸·Î µû·Î ¶¼¾î ´Ù·ç´Â ´É·ÂÀÌ´Ù. ±×·¡¼­ ºÎǰ Á¶¸³À¸·Î Å©°í º¹ÀâÇÑ ±¸Á¶¹°À» ¸¸µéµµ·Ï ÇÏ´Â ´É·ÂÀÌ´Ù.
  • Á¤È®È÷´Ù·ç±â(precision): ¾Ö¸ÅÇÏÁö¾Ê°Ô °¢Àâ°í ´Ù·ç´Â ´É·ÂÀÌ´Ù. ±×·¡¼­ ÆÄ»ý ¼ºÁúÀ» ¾ö¹ÐÈ÷ È®ÀÎÇÏ°í ¼ÒÅëÇÏ´Â ´É·ÂÀÌ´Ù.

ÀÌ ¼¼°¡Áö ´É·ÂÀº ¼ÒÇÁÆ®¿þ¾î Àü¹®°¡ÀÇ ±âÃÊ Ã¼·ÂÀÌ´Ù. ưưÇÒ¼ö·Ï ÁÁ´Ù. ÀÌ ¼¼°¡Áö ´É·ÂÀÌ Àü¹®°¡·Î¼­ÀÇ ½ÃÁ¡À» »ó½Â½ÃÄÑÁֱ⠶§¹®ÀÌ´Ù. ÇÁ·Î±×·¡¹Ö¾ð¾î ºÐ¾ß¿¡¼­ ¿¬±¸Çϰųª ÇÁ·Î±×·¡¹Ö¾ð¾î¸¦ ÀÍÈú¶§ »Ó¸¸ÀÌ ¾Æ´Ï´Ù. ÀϹÝÀûÀ¸·Î ¼ÒÇÁÆ®¿þ¾î¸¦ Á¦ÀÛÇϰųª ´Ù·ê¶§µµ ÁÖ¿äÇÑ ±âÃÊ Ã¼·ÂÀÌ´Ù.

¶Ç, ÇÁ·Î±×·¡¹Ö¾ð¾î³ª ÇÁ·Î±×·¡¹Ö °ü·Ã À̾߱⸦ Á¢Çϰųª ¹°¾î°¡¸ç ÆÄµé¾î°¥ ¶§µµ ±×·¸´Ù. ¼Ò°³ÇÑ °³³äµéÀ» ÀÌÇØÇÏ°í ¿ë¾î¸¦ ¾Ë°í ¹®´äÇÏ¸é ´õ ±íÀº ³»¿ëÀ» È¿°úÀûÀ¸·Î ±æ¾î¿Ã¸± ¼ö ÀÖ´Ù. ±×¸®°í ±× ¹®´äÀÇ ¹Ù´ÚÀ» ½Å¼ÓÈ÷ ¸¸³ª´Âµ¥µµ ¼ö¿ùÇØÁú ¼ö ÀÖ´Ù.

³»¿ë Contents

½Ç¶óºÎ½º.
°­ÀÇ¿¡¼­´Â °¡´ÉÇϸé [½¬¿îÀü¹®¿ë¾î]¸¦ »ç¿ëÇÕ´Ï´Ù.
  • Áغñ: inductive definition, set, function, relation, formal logic, syntax, semantics, proof rule, soundness, completeness, partial order, cpo, continuous function, fixpoint, least fixpoint
  • ÇÁ·Î±×·¥ ÀÇ¹Ì ´Ù·ç±â: dynamic semantics, denotational semantics, proof techniques, lambda calculus, operational semantics, evaluation context, value, binding, environment, memory, continuation, exception, control as value, code as value, abstract semantics
  • ŸÀÔÀ¸·Î ÇÁ·Î±×·¥ ´Ù·ç±â: static semantics, simple type, product type, sum type, curry-howard isomorphism, recursive type, polymorphic type, parametric polymorphism, system F, ad-hoc polymorphism, type class, dependent type, lambda cube, abstract data type, subtype, type checking, type inference
Âü°íÀÚ·á:
  • Practical Foundations of Programming Languages (Robert Harper, Cambridge Univ. Press), Theories of Programming Languages (John C. Reynolds, Cambridge Univ. Press), Types and Programming Languages (Benjamin C. Pierce, MIT Press) µî
  • °ü·Ã ³í¹®µé

±ÔÁ¤ Policy

  ¼÷Á¦ 90%. ±âŸ 10%. ¼ºÀûÀº Àý´ëÆò°¡.

¼÷Á¦ Homeworks

  • ¼÷Á¦´Â °­Àǽ𣿡 ±³¼ö¿¡°Ô Á¦ÃâÇÕ´Ï´Ù.
  • Á¦Ãâ±âÇÑÀ» Áö³ª 48½Ã°£ À̳»·Î ´Ê¾îÁö¸é 10% °¨Á¡. ±× ÀÌÈÄÀÇ ¼÷Á¦´Â ¹ÞÁö ¾Ê½À´Ï´Ù.
© Copyright 2025, ÀÌ ±¤±Ù Kwangkeun Yi