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, lambda cube, dependent type, calculus of constructions, 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), Handbook of Logic in Computer Science, Vol.2 (Background: Computational Structures) (Edited by S. Abramsky et al., Oxford Science Publications)
  • °ü·Ã ³í¹®µé

±ÔÁ¤ Policy

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

¼÷Á¦ Homeworks

© Copyright 2025, ÀÌ ±¤±Ù Kwangkeun Yi