嵌入式软件的功能编程


15

昨晚我正在和一个朋友讨论F#和函数式编程,他向我提出了一个有趣的问题。您将如何在功能上嵌入软件?我的意思是,就无状态代码而言,这似乎是很自然的选择,但嵌入式也需要非常节省内存,而我不确定这方面的功能。

关于嵌入功能的语言或软件包有什么建议吗?


该链接可以帮助您ftp.cs.york.ac.uk/pub/malcolm/thesis.html。下载后记文件并阅读。
Ubermensch'3

@Ubermensch谢谢,但是当我尝试访问该链接时遇到错误。
Onorio Catenacci 2012年

3
请看这个SO 问题。它似乎非常符合您的要求。而这个页面处理编程与Haskell.Atom Arduino的
Bhargav铢

@OnorioCatenacci此链接是实际的后记文件ftp.cs.york.ac.uk/pub/malcolm/thesis.ps.Z
Ubermensch 2012年

Answers:


2

Forth是嵌入式系统编程的绝佳选择。作为一种堆栈语言,可以根据功能组成(连接编程)对其进行分析。我认为没有理由不能有效地实现这种具有更多功能方面的语言,但是据我所知,目前还没有这样的东西。


1
串联编程是与函数式编程截然不同的范例,但是有一个函数式(funforth)实现了Haskell函数式语言的某些简化方面。
Mark Booth 2012年

@MarkBooth:没什么不同;串联编程(从定义上讲,很多)大量使用了高阶组合器,许多功能概念直接转换为串联代码。
乔恩·普迪

3

一种选择是Erlang。从维基百科页面

Erlang是通用的并发,垃圾收集的编程语言和运行时系统。Erlang的顺序子集是一种功能语言,具有严格的评估,单个分配和动态类型。对于并发,它遵循Actor模型。它是由爱立信设计的,用于支持分布式的,容错的,软实时的,不间断的应用程序。它支持热插拔,因此无需停止系统即可更改代码。

尽管在大多数语言中线程被认为是一个复杂且容易出错的主题,但Erlang提供了用于创建和管理进程的语言级功能,目的是简化并发编程。尽管所有并发在Erlang中都是显式的,但是进程使用消息传递而不是共享变量进行通信,从而消除了对锁的需求。

第一版由乔·阿姆斯特朗(Joe Armstrong)于1986年开发。2它最初是爱立信内部的专有语言,但于1998年作为开源发布。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.