Gömülü Yazılım için Fonksiyonel Programlama [kapalı]


15

Dün gece bir arkadaşımla F # ve Fonksiyonel Programlamayı tartışıyordum ve bana ilginç bir soru getirdi. Gömülü yazılımı işlevsel olarak nasıl yapardınız? Bu durum, vatansız kod açısından oldukça doğal bir uyum gibi görünüyor, ancak gömülü de bellekle çok tutumlu olmayı gerektiriyor ve bu açıdan işlevsel için hikayeden emin değilim.

İşlevsel gömülü diller veya paketler hakkında herhangi bir öneriniz var mı?


Bu bağlantı ftp.cs.york.ac.uk/pub/malcolm/thesis.html adresine yardımcı olabilir . Postscript dosyasını indirin ve okuyun.
Ubermensch

@Ubermensch teşekkürler ama bu bağlantıya erişmeye çalıştığımda bir hata alıyorum.
Onorio Catenacci

3
Lütfen bu SO sorusuna bir göz atın . Sorduğunuza çok yakından benziyor gibi görünüyor. Ve bu sayfayı Haskell.Atom ile Arduino programlama ile uğraşan
Bhargav Bhat

@OnorioCatenacci Bu bağlantı fiili postscript dosyasıdır ftp.cs.york.ac.uk/pub/malcolm/thesis.ps.Z
Ubermensch

Yanıtlar:


2

Forth , gömülü sistem programlama için mükemmel bir seçimdir. Bir yığın dili olarak, fonksiyon kompozisyonu ( birleştirilmiş programlama ) açısından analiz edilebilir . Daha işlevsel yönlere sahip böyle bir dilin de etkili bir şekilde uygulanamamasının bir nedenini görmüyorum, ancak henüz (bildiklerime göre) böyle bir şey yok.


1
Birleştirici programlama, İşlevsel programlama için çok farklı bir paradigmadır, ancak Haskell işlevsel dil dilinin bazı basitleştirilmiş yönlerini uygulayan işlevsel bir ileri ( eğlence ) vardır .
Mark Booth

@MarkBooth: Çok farklı değil; Birleştirici programlama (hemen hemen tanım gereği), yüksek dereceli birleştiricilerin yoğun bir şekilde kullanılmasını sağlar ve birçok fonksiyonel kavram, doğrudan birleştirici koda dönüşür.
Jon Purdy

3

Bir seçenek Erlang . Gönderen wikipedia sayfası :

Erlang , genel amaçlı eşzamanlı, çöp toplamalı programlama dili ve çalışma zamanı sistemidir. Erlang'ın ardışık alt kümesi, katı değerlendirme, tekli atama ve dinamik yazarak işlevsel bir dildir. Eşzamanlılık için Aktör modelini takip eder. Ericsson tarafından dağıtılmış, hataya dayanıklı, yumuşak gerçek zamanlı, kesintisiz uygulamaları desteklemek üzere tasarlanmıştır. Çalışırken değiştirmeyi destekler, böylece kod bir sistemi durdurmadan değiştirilebilir.

İş parçacıkları birçok dilde karmaşık ve hataya açık bir konu olarak kabul edilirken, Erlang eşzamanlı programlamayı basitleştirmek amacıyla süreçler oluşturmak ve yönetmek için dil düzeyinde özellikler sunar. Erlang'da tüm eşzamanlılık açık olmasına rağmen, işlemler paylaşılan değişkenler yerine mesaj geçişi kullanarak iletişim kurar ve bu da kilit ihtiyacını ortadan kaldırır.

İlk sürüm 1986 yılında Joe Armstrong tarafından geliştirildi. 2 Orijinal olarak Ericsson içinde tescilli bir dildi, ancak 1998 yılında açık kaynak olarak piyasaya sürüldü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.