关于语法类型

本文探讨了在程序设计中语法与语义之间的关系,特别是对于具有强语法功能的程序所面临的挑战。文中提到,在实践中遇到诸如惰性计算、类型分派等问题时,弱语法类型的系统可能采用特殊操作符或lambda表达式等方式来实现这些功能。然而,当转向具有更强语法功能的系统时,则需要通过一系列转换阶段来实现从语法到语义的映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于语法类型
在大部分的情况下,自己都在思考语义的结构和意思,而从学院派的角度看,语义一般理解为形式语义,也就是说是形式化系统,具有不完备性。而自己在实践中遇到过很多这种尴尬,比如惰性计算,类型分派,类型标签,etc从逻辑上看是因为语义部分的类型功能弱而出现的弊端,而对于lisa这种同样弱语法类型的形式系统而言,解决困境的方式表现得相对原始。ie,惰性计算采用特殊操作符的方式实现或采用lambda封包实现,明显缺乏语法支持。而对于类型标签采用运行时值比较或lambda封包实现,缺点一样。
但现在在研究这样一种具有较强语法功能的程序时,它却表现出了相反的弊端。为了获得语义功能,也正是因为语法功能强,需要经过几个阶段,第一个阶段是内聚,即将强的语法表现为弱的语法实现,(比如let用lambda实现),越弱的语法离语义越近,第二阶段将弱语法表现为语义。
感觉从语义的角度出发来思考语法是一条正确的途径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值