Функціональне програмування вбудованого програмного забезпечення [закрито]


15

Я обговорював F # та функціональне програмування з другом учора ввечері, і він підніс мені цікаве питання. Як би ви зробили вбудоване програмне забезпечення у функціонал? Я маю на увазі, що це здається досить природним підходом з точки зору коду без громадянства, але вбудований також спричиняє дуже ощадливість пам’яті, і я не впевнений, що історія є функціональною в цьому плані.

Будь-які пропозиції щодо мов чи пакетів для вбудованого функціоналу?


Це посилання може допомогти вам ftp.cs.york.ac.uk/pub/malcolm/thesis.html . Завантажте файл постскрипту та прочитайте його.
Ubermensch

@Ubermensch дякую, але я отримую помилку, коли намагаюся отримати доступ до цього посилання.
Оноріо Катенач

3
Погляньте, будь ласка, на це питання ТАК . Здається, це дуже тісно реагує на те, що ви запитали. І ця сторінка, що стосується програмування Arduino за допомогою Haskell.Atom
Bhargav Bhat

@OnorioCateSense Це посилання є фактичним файлом поштових скриптів ftp.cs.york.ac.uk/pub/malcolm/thesis.ps.Z
Ubermensch

Відповіді:


2

Forth - відмінний вибір для програмування вбудованих систем. Будучи мовою стека, її можна аналізувати з точки зору складу функцій ( конкатенативне програмування ). Я не бачу жодної причини, чому таку мову з більш функціональними аспектами також не можна було б ефективно впровадити, але поки такого (наскільки мені відомо) не існує.


1
Конкатенативне програмування - це зовсім інша парадигма функціонального програмування, але є функціональний формат ( funforth ), який реалізує деякі спрощені аспекти функціональної мови Haskell .
Марк Бут

@MarkBooth: Не так вже й різні; конкатенативне програмування (в значній мірі за визначенням) широко використовує комбінатори вищого порядку, і багато функціональних понять переводяться безпосередньо в конкатенативний код.
Джон Перді

3

Один варіант - Ерланг . На сторінці вікіпедії :

Erlang - це паралельна система програмування та система виконання програм для загального призначення. Послідовна підмножина Erlang - це функціональна мова, яка має чітку оцінку, однозначне призначення та динамічне введення тексту. За сумісність це слід за моделлю Актора. Вона була розроблена Ericsson для підтримки розповсюджених програм, стійких до відмов, програмного забезпечення в режимі реального часу, без зупинки. Він підтримує гарячу заміну, так що код можна змінювати, не зупиняючи систему.

Хоча нитки вважаються складною та схильною до помилок темою більшості мов, Erlang надає функції на мовному рівні для створення та управління процесами з метою спрощення одночасного програмування. Хоча в Erlang вся сукупність явна, процеси обмінюються інформацією за допомогою передачі повідомлень замість загальних змінних, що усуває необхідність блокування.

Перша версія була розроблена Джо Армстронгом в 1986 році. 2 Спочатку це була власна мова в Ericsson, але була випущена як відкритий код у 1998 році.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.