Programação funcional para software incorporado [fechado]


15

Eu estava discutindo F # e Programação Funcional com um amigo ontem à noite e ele me trouxe uma pergunta interessante. Como você faria o software incorporado funcional? Quero dizer, isso parece um ajuste bastante natural em termos de código sem estado, mas incorporado também implica ser muito frugal com a memória e não tenho certeza da história de funcionalidade nesse sentido.

Alguma sugestão sobre idiomas ou pacotes para incorporado com funcional?


Este link pode ajudá-lo a ftp.cs.york.ac.uk/pub/malcolm/thesis.html . Faça o download do arquivo postscript e leia-o.
Ubermensch

@Ubermensch obrigado, mas estou recebendo um erro ao tentar acessar esse link.
Onorio Catenacci

3
Por favor, dê uma olhada nesta questão SO . Parece estar muito próximo do que você pediu. E esta página lidar com a programação do Arduino com Haskell.Atom
Bhargav Bhat

@OnorioCatenacci Este link é o arquivo real PostScript ftp.cs.york.ac.uk/pub/malcolm/thesis.ps.Z
Ubermensch

Respostas:


2

A quarta é uma excelente opção para programação de sistemas embarcados. Sendo uma linguagem de pilha, pode ser analisada em termos de composição de funções ( programação concatenativa ). Não vejo razão para que uma linguagem com aspectos mais funcionais também não possa ser implementada com eficiência, mas ainda não existe (que eu saiba).


1
A programação concatenativa é um paradigma muito diferente da programação funcional, mas existe um adiante funcional ( funforth ) que implementa alguns aspectos simplificados da linguagem da linguagem funcional Haskell .
Mark Booth

@ MarkBooth: Não é tão diferente; a programação concatenativa (basicamente por definição) faz uso pesado de combinadores de ordem superior e muitos conceitos funcionais se traduzem diretamente em código concatenativo.
31812 Jon Purdy

3

Uma opção é Erlang . Na página da wikipedia :

Erlang é uma linguagem de programação simultânea de uso geral e sistema de tempo de execução coletado por lixo. O subconjunto seqüencial de Erlang é uma linguagem funcional, com avaliação rigorosa, atribuição única e digitação dinâmica. Por simultaneidade, segue o modelo do ator. Foi desenvolvido pela Ericsson para oferecer suporte a aplicativos distribuídos, tolerantes a falhas, em tempo real suave e sem interrupção. Ele suporta troca a quente, para que o código possa ser alterado sem parar o sistema.

Embora os threads sejam considerados um tópico complicado e propenso a erros na maioria dos idiomas, o Erlang fornece recursos no nível do idioma para criar e gerenciar processos com o objetivo de simplificar a programação simultânea. Embora toda a simultaneidade seja explícita no Erlang, os processos se comunicam usando a passagem de mensagens em vez de variáveis ​​compartilhadas, o que elimina a necessidade de bloqueios.

A primeira versão foi desenvolvida por Joe Armstrong em 1986. 2 Era originalmente uma linguagem proprietária da Ericsson, mas foi lançada como código aberto em 1998.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.