函数式编程的底层架构和命令式编程的区别

区别是:函数式语言和命令式语言(含面向对象)编译过程中最大的不同是做完parsing和type checking之后,函数式语言一般会被翻译成一个类似lambda演算的简单语言,然后再转换成低级指令;而命令式语言直接被转换成低级指令。

函数式编程的底层架构和命令式编程的最底层肯定都是汇编。

函数式语言和命令式语言(含面向对象)编译过程中最大的不同是做完parsing和type checking之后,函数式语言一般会被翻译成一个类似lambda演算的简单语言,然后再转换成低级指令;而命令式语言直接被转换成低级指令。

比如说2010年之后Haskell会被编译成一个叫Core的语言,再加一些annotation变成STG语言,然后做些优化转换成Cmm,最后输出C/汇编/LLVM。

Scala中间会把代码输出成一个带类型的lambda演算,然后擦类型做尾递归优化,最后输出到JVM。

延伸阅读:

什么是命令式编程?

命令式编程(英语:Imperative programming),是一种描述计算机所需作出的行为的编程典范。几乎所有计算机的硬件工作都是命令式的;几乎所有计算机的硬件都是设计来运行机器码,使用命令式的风格来写的。较高阶的命令式编程语言使用变量和更复杂的语句,但仍依从相同的典范。虽非计算机程序,但与命令式编程有相似的风格:每步都是指令,有形的世界控制情况。因为命令式编程的基础观念,不但概念上比较熟悉,而且较容易具体表现于硬件,所以大部分的编程语言都是命令式的。

文章标题:函数式编程的底层架构和命令式编程的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38863

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编的头像小编

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部