組み込みソフトウェアの関数型プログラミング[終了]


15

昨夜、F#と関数型プログラミングについて友人と話し合っていたところ、彼から興味深い質問が寄せられました。組み込みソフトウェアをどのように機能させますか?つまり、これはステートレスコードの点ではかなり自然に似ているように見えますが、埋め込みにはメモリが非常に不足していることも伴うため、その点で機能的なストーリーはわかりません。

組み込み機能付きの言語またはパッケージに関する提案はありますか?


このリンクは、ftp.cs.york.ac.uk / pub / malcolm / thesis.htmlに役立ちます。postscriptファイルをダウンロードして読んでください。
-Ubermensch

@Ubermenschありがとう、しかしそのリンクにアクセスしようとするとエラーが出ます。
オノリオカテナッチ

3
このSOの質問をご覧ください。それはあなたが尋ねたことに非常に密接に関連しているように見えます。このページは Haskell.AtomとArduinoのプログラミングを扱う
Bhargav Bhatさん

@OnorioCatenacciこのリンクは、実際のポストスクリプトファイルftp.cs.york.ac.uk/pub/malcolm/thesis.ps.Z
Ubermensch

回答:


2

Forthは、組み込みシステムプログラミングに最適です。スタック言語であるため、関数構成(連結プログラミング)の観点から分析できます。より機能的な側面を備えたそのような言語を効率的に実装することができなかった理由はわかりませんが、まだそのようなことは(私の知る限りでは)存在しません。


1
連結プログラミングは、関数型プログラミングとは非常に異なるパラダイムですが、Haskell関数型言語のいくつかの単純化された側面を実装する関数型(funforth)があります。
マークブース

@MarkBooth:それほど違いはありません。連結プログラミング(定義により)は、高次のコンビネータを多用し、多くの機能概念が直接連結コードに変換されます。
ジョンパーディ

3

1つのオプションはErlangです。ウィキペディアのページから:

Erlangは、汎用のコンカレントガベージコレクションプログラミング言語およびランタイムシステムです。Erlangのシーケンシャルサブセットは、厳密な評価、単一の割り当て、および動的型付けを備えた関数型言語です。並行性については、アクターモデルに従います。分散型のフォールトトレラントなソフトリアルタイムのノンストップアプリケーションをサポートするために、エリクソンによって設計されました。ホットスワップをサポートしているため、システムを停止せずにコードを変更できます。

スレッドはほとんどの言語で複雑でエラーが発生しやすいトピックと見なされていますが、Erlangは並行プログラミングを簡素化する目的でプロセスを作成および管理するための言語レベルの機能を提供します。Erlangではすべての並行性が明示的ですが、プロセスは共有変数の代わりにメッセージパッシングを使用して通信するため、ロックの必要性がなくなります。

最初のバージョンは、1986年にJoe Armstrongによって開発されました。2元々はEricsson内の独自言語でしたが、1998年にオープンソースとしてリリースされました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.