返回信息流语言和语言实现的概念好晕,也用过一些语言,可总也体会不到一门语言的特性,是内置类型的设计?是编程范型的选择?是类型模型的架构?
一门语言的特性,是为了解决什么问题而设计的,有没有其他的替代方案?
原来以为编译原理很难,现在发现语言设计好像更难以理解,这门学科的理论基础是什么?为啥语言之父和编译器之父经常不是一个人呀?
这是一条镜像帖。来源:北邮人论坛 / java / #44087同步于 2015/9/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
设计语言和设计编译器的区别和联系?
henceman
2015/9/11镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
语言涉及到语法、语义,具体的说还有编程范式、类型系统;各种语句、表达式需要在设么限制条件下使用(比如42=="abc"合法不合法)?使用以后提供什么样的保证(比如i+1是否永远>i)?还有一些细节,比如整数除以0结果是什么?移位运算移动的位数超过整数的大小怎么办?还有面向对象里面的对象、继承、多态的语义;所有的类型是否有一个共同的父类?诸如此类的问题。函数式语言的类型系统也许会很销魂,比如M a -> (a -> M b) -> M b是什么鬼类型?
编译器是语言的实现方法之一,其他的实现方法包括解释器,用硬件实现,等等。只要能作出一个具体的东西来实现语言,就算实现了。
【 在 nuanyangyang 的大作中提到: 】
: 语言涉及到语法、语义,具体的说还有编程范式、类型系统;各种语句、表达式需要在设么限制条件下使用(比如42=="abc"合法不合法)?使用以后提供什么样的保证(比如i+1是否永远>i)?还有一些细节,比如整数除以0结果是什么?移位运算移动的位数超过整数的大小怎么办?还有面向对象里面的对象、继承、多态的语义;所有的类型是否有一个共同的父类?诸如此类的问题。函数式语言的类型系统也许会很销魂,比如M a -> (a -> M b) -> M b是什么鬼类型?
: 编译器是语言的实现方法之一,其他的实现方法包括解释器,用硬件实现,等等。只要能作出一个具体的东西来实现语言,就算实现了。
谢谢暖神,今天看了一个词,图灵完备,只要符合这个条件的都可以是一门语言哈,那要是设计个语言需要哪些知识储备呢?
【 在 henceman 的大作中提到: 】
: 谢谢暖神,今天看了一个词,图灵完备,只要符合这个条件的都可以是一门语言哈,那要是设计个语言需要哪些知识储备呢?
你这样定义啊……
买一套乐高玩具,用玩具搭一个图灵机吧。用轨道和塑料块做纸带,用马达和轮子搭一个小车做读写头。
【 在 nuanyangyang 的大作中提到: 】
:
: 你这样定义啊……
: 买一套乐高玩具,用玩具搭一个图灵机吧。用轨道和塑料块做纸带,用马达和轮子搭一个小车做读写头。
暖神~!~