MetaWare 的 High C 编译器的丢失语言扩展

主要观点:介绍一本关于 FM TOWNS High C Compiler v1.7 的用户手册,此手册包含很多有趣的 80 年代 C 编译器扩展功能。
关键信息:

  • FM TOWNS 的 High C 编译器在 80 年代因竞争而产生,后被 Fujitsu 用于其基于 80386 的 FM TOWNS 平台。
  • 手册中介绍了一些有趣的 C 语言扩展,如数字字面量中的下划线、标记参数、范围 case、嵌套函数、生成器等。
  • 这些扩展在其他 C 编译器中不常见,有些甚至到近年才在 C 标准中出现,而 C++也未采用其中一些。
    重要细节:
  • 数字字面量中可使用下划线分隔以提高可读性,C++14 才引入类似功能,C 今年的 C23 标准才跟上。
  • 标记参数可在调用函数时为参数命名,方便处理大量参数或非描述性类型参数,Python 有此功能,标准 C 和 C++未采用。
  • 范围 case 可匹配一系列值,Pascal 有此功能,High C 采用,标准 C 和 C++未采用。
  • 嵌套函数可在函数内嵌套函数,High C 的实现比标准 Pascal 和 GCC 的嵌套函数扩展更有趣和完整,还可通过goto回到父函数,Objective-C 的块和 C++的 lambda 没有非本地退出能力,标准 C 也没有官方嵌套函数功能。
  • 生成器可实现 Python 风格的生成器协程,在普通 C 中实现,通过特殊语法声明和调用,其实现基于嵌套函数,for循环会被转换为嵌套函数,嵌套函数可与嵌套函数功能进行复杂交互。
阅读 15
0 条评论