编译原理类型检查.pptVIP

  • 3
  • 0
  • 约1.6万字
  • 约 99页
  • 2023-03-30 发布于广东
  • 举报
6.6.1 为什么使用多态函数? 实现算法?处理数据结构,而不必管其内部元素的类型 type link = ^cell; cell = record info : integer; next : link end; function length(lptr : link) : integer; var len : integer; begin len := 0; while lptr nil do begin len := len + 1; lptr := lptr^.next; end; length := len end; 第62页,共99页。 求任何类型列表长度的ML程序 fun length(lptr) = if null(lptr) then 0 else length(tl(lptr)) + 1; 可应用于任何类型的列表 length([“sun”, “mon”, “tue”]); length([10, 9, 8]); 递归函数 列表为空? 列表剩余部分 第63页,共99页。 6.6.2 类型变量 a, b, …,表示未知类型 重要应用:不要求标识符先声明后使用的语言中,检查标识符使用的一致性 类型变量表示未声明标识符的类型 若类型变量发生变化,不一致! 若一直未变化,一致!同时得到标识符类型 类型

文档评论(0)

1亿VIP精品文档

相关文档