Lecture 2 Notes

19 for our proc language the equations are rator rand

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: £ $$3¡ '# $! ¢ ¡ £ ¡ £¢ ¢ ¦ ¨)£ (©¡ ¦   (©  ¡ © )£ ) % ¢ $ ¡ £ ¦ (© )    ! 2 (  ¡  ¨ !  ¨ ¡ ¡¢ £ ¡¢ ¢ ¢¢ ¥ ¡£ ¡ £¢ ¢ ¢ © ¢  ¢  ¢(  tres tvar body var t1 tenv var e1 body tenv t2  (  15 body var tvar tenv var tvar body tenv t1  ( e1 tenv e1 tenv e2 tenv t e3 tenv t e1 e2 e3 tenv t %( ( ( ( ( ¦ ) (© ¢ ¡£ ¡£ ¡ £ ¢ ¢ ( ( ( ( © © 16 ¡¢ ¢ ¢ ¢ ¨ ¢ £¢  ¡ ¢  ¡ £¢ ¢ ¤ ¨ © ¡ ¢¢ ¡ ¢  © ¢ © ¨© ¡ £¢ ¦ ©  ¡¢ £ ¢ © ¡¢ £ ¡¢ ¦¥ ¥ ¢ ¢ ¤ ¡¢ £ ¨ ¤ ¢ ¦ ¡ £¢ ¢ © ¡ £¢ ¦¥ ¡¢ £ ¡ £¢ ¢ £¢ © © ¡ © ¨© ¡ £¢ ¡£¢ © ¨© ¡£¢ ¡ £¢ ¢  ¢ ¢ ¢  ¨  )  ) '( © ' ( # ' # ' ¢# )   ' )$# (¦©%   ) (¤  ' © $ ( 4' ¨(  #  # $'  ) !  !   $  $ ¢ © $¢  '(  # '  )  ) © ) ( ' © (©  ¦ $) (¤  (¤   ©'  #  © $%  )  ' ¡ ' "( %( ¥§ ¡  © $%  %   ¡  ' © 4 $ )) 4 ¡  2 ¤ ¥ ¡ ©'  # ¡  ) ' © (©  ¦ $) # ' '¥#¡ (  ) ©% # © ' (  )  # $'  # $'   ' ) (''    ¢   ¨   ¢  ¢  ¢    # $' ¡ ©4(' ") ¡    ) ©   # " 4 ¡ # ' ¡ ' ©¦ ($©)  © # '¡  % ¡  ¡  ) ' ( $£¡ ¢ ' ' ¥ £¡ # ( #'  ©%%#  4 ¡ t2 ( rator rand rand tenv tenv t2 ¢  $"4 ¡ ©%%#  ¦(©¡ ")¢ t1   ¡  ¦ ¨)£ (©¡ rator tenv (  ¢ ¦ $)£ (©¡ ( t1  tenv     ¡ £¢ ( ¡ ¥2¢ ( 2 ¢  ¢ ¢ © ©4' $¨  ' )¦ $! %© ( ©  ©4(' ")  £ $ % ¡ ©  ¡ © )£ $ %  ¢¡ ¡£  $ ¢  ¢( ¢  2 ¢  ©4'  ")¨ % ¢  ¢ ¢¢ ¥ ! © $ ¢  $  ¡ ¢      ¡    ¡ ¢ ¦ $)£ ¡ (©¡ 2 ¤ ©4(' ¨) ¢© 4 £)¨$) ¢ 4 1¡ ©"4¨(  ¦  £ ¡ ' (© ¡ 2   ¡ © ¡  ¢ ( © 4 ( ' ¡ )¢ ¥ "¨)$ ¡   $ ¢  ¢  ¡ ©'#!© )¢ $¢ '©4 ' "¨(    ! 2 ¢ ¢¢ ¥ ( ¢  ¢  % ¡  £ ") ¡ ¡ ©4('   # ¨) ©4('   ! $ ¢ $  ¡ ©  2  ¡¢ ©4' %© (¦©  ¡ ¥"(  "$$2¨ $' )$! $ ¡ %¡ ¡ ¥¢ ( $¨  % ©4' 2 ¡ ¥¢ ( "¨)$2 ©4('   2   )£ $$"¢ ¡ ©'#!© ( '#!© $¢ (   # "¨)$ )¢ $ % ©4(' ¡ © '©4(' ") ¡  ©4'   "$ % ¡ ¢   ¢  ¡ ©¡ )£ $¥¢ (   ©4(' ' "¨) ¤ ¡ ©% ¥ £ $#  2  ¡£¢ ( ©"4)'¨ %$' ))! $2  © (¦©   )¡£ ©$'$"¢  #!© (   2 '#!© $"¢ (   2 ¡¢ ¥"( ¢¢ ©  17 ¡  ¢  ©4'  ")¨ % ¡   ¡ ¡ ¢ ¢ ¢  ¢ ¢ © eproc-body var tvar p tvar tres tenv eletrec-body p tvar tres tenv t tres p (var tvar ) eproc-body eletrec-body  ¦ ) (© ¢ ¦(©¡ ")¢ ¢ ¦(©¡ ")¢ ¢ ¢ ¡ £ ( ( ( t tres 6.5 INFERRED: a Language with Type Inference Writing down the types in the program may be helpful for design and documentation, but it can be time-consuming. Another design is to have the compiler figure out the types of all the variables, based on observing how they are used, and utilizing any hints the programmer might give. Surprisingly, for a carefully-designed language, the compiler can always infer the types of the variables. This strategy is called type inference. We can do it for languages like LETREC, and it scales up to reasonably-sized languages. For our case study in type inference, we start with the language of CHECKED. We then change the language so that all the types are optional. In place of a missing type expression, we use the marker . Hence a typical program looks like 0   $#  £¡ © ((¦ )£¡  £¡ © 0(' )$& ©$ % "   ¤ ¨¢  )   0 ' £¡ ( &  ¦¤  0 ¢  4'  $$¨ %  £¡ (( )¦ 0 (( )¦ ¤  Each question mark (except, of course, for the one in where a type must be inferred. ) indicates a place 0 Since types are optional, we may also fill in some of the ’s with types, as in $  ¨   $  £¡ ©  £¡ ©  ¢¢ "( ¡ ! $ ¡ ©  © $ % "  % "      ¤¥¢ ¤ ¥¢  0(' £¡ ¨)&  0('  £¡ ¨)&  18 ¦ §¤ ¦ §¤  ¢...
View Full Document

This document was uploaded on 03/17/2014 for the course CSG 111 at Northeastern.

Ask a homework question - tutors are online