木兰编程语言重现无参数函数、字典基本功能,语法设计的取舍有感

栏目: 软件资讯 · 发布时间: 4年前

内容简介:当函数没有形参时,定义和调用时都可以省去括号,比如: func 问好 { print('吃了么') } 问好 感觉这个设计挺合理,但不知这种情况是否会多见。 本周还实现了字典类型的基本功能,与 Python 的基本一致...

当函数没有形参时,定义和调用时都可以省去括号,比如:

func 问好 {
  print('吃了么')
}
问好 

感觉这个设计挺合理,但不知这种情况是否会多见。

本周还实现了字典类型的基本功能,与 Python 的基本一致:

电话 = { : }
电话['小明'] = 1357
电话 = {'小明': 1234, '小红': 4321}

值得一提的是,初始化空字典时 Python 的方式是d = {},而木兰的的空字典是这样表示:{:}

因为{}在木兰中是内容为空的“代码块”,比如:

func 空函数 {} 

也许这一设计是为了避免语法分析的麻烦,

因此,用{}代替了 Python 的缩进这一语法改动,就影响了空字典的初始化方法。前者对代码视觉效果的影响比后者更大,使用频度也更多。可见,编程语言的特性和语法设计的取舍值得通盘考虑,因为有可能会牵一发动全身,何取何舍应该由语言的目标用户和应用领域等等决定。

于是想到,编程语言设计参考自然语言语法和用词,不仅能增进代码可读性,各语法元素可能更融洽和有持久生命力,因为自然语言本身经过了千百年的演化和考验。

代码统计

下面是几个主要部分的代码行数统计,格式为:上周->本周。

  • 测试
    • 木兰测试用例:1068 -> 1075
    • 运行测试.py,检验所有木兰测试代码片段:144 -> 145
    • 未变
      • test语法树.py,确保生成的语法树与原始版本一致:63
  • 实现:1898 -> 1941
    • 分析器/语法分析器.py:792 -> 824
    • 分析器/语法树.py功用/调试辅助.py,包括对 ast 库的中文封装:251 -> 260
    • 未变
      • 分析器/词法分析器.py:184
      • 演示高亮.py:98
      • 环境.py,加载木兰模块:87
      • 中.py,主程序:35

以上所述就是小编给大家介绍的《木兰编程语言重现无参数函数、字典基本功能,语法设计的取舍有感》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Search User Interfaces

Search User Interfaces

Marti A. Hearst / Cambridge University Press / 2009-9-21 / USD 59.00

搜索引擎的本质是帮助用户更快、更方便、更有效地查找与获取所需信息。在不断改进搜索算法和提升性能(以技术为中心)的同时,关注用户的信息需求、搜寻行为、界面设计与交互模式是以用户为中心的一条并行发展思路。创新的搜索界面及其配套的交互机制对一项搜索服务的成功来说是至关重要的。Marti Hearst教授带来的这本新作《Search User Interfaces》即是后一条思路的研究成果,将信息检索与人......一起来看看 《Search User Interfaces》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具