Quais idiomas são usados ​​hoje para programação de baixo nível? [fechadas]

13

Quando ouço programação de baixo nível, como drivers, sistemas embarcados, sistemas operacionais etc., penso imediatamente em C e talvez em C ++. Mas principalmente C.

Mas que outras línguas também são usadas para esse tipo de tarefa? Hoje, quero dizer, não o que foi usado.

gablin
fonte

Respostas:

14

Normalmente, programação de nível baixo, como programação de driver, é uma mistura de linguagem assembly e C.

A linguagem assembly é usada para conversar com o hardware e C é usado para conversar com o kernel.

david4dev
fonte
Eu quis dizer idiomas em um nível superior ao assembly, mas seu argumento ainda é válido, é claro. =)
gablin
8
Depende do sistema operacional, no Windows ou Linux não há necessidade de linguagem assembly ao escrever drivers. Você pode acessar o hardware muito bem com C.
Jim A
6
A única vez em que você realmente trabalha com montagem é ao lidar com peculiaridades específicas da arquitetura, geralmente ao trabalhar em algo como um gerenciador de memória virtual. O programador que escreve um driver de dispositivo, no entanto, raramente é exposto a isso. Eles usam as instalações que existem.
Tim Post
8

O Ada ainda é usado em sistemas de segurança / missão crítica, pois ainda oferece recursos de segurança relativamente incomparáveis.

Era obrigatório usar Ada até o final dos anos 90 no Departamento de Defesa e em algumas outras áreas, mas não é mais, portanto, não é tão usado como era antes. Mas ainda pode ser encontrado em usos altamente críticos, aviônicos, energia nuclear etc.

As versões modernas têm orientação a objetos e bom suporte para processamento paralelo, por isso é totalmente útil ainda.

Orbling
fonte
1
Acho que usaremos Ada em um dos cursos de sistemas embarcados que estou fazendo na primavera.
gablin
1
@ gablin: Sim, é comumente usado em sistemas embarcados, uma boa escolha para isso.
Orbling
6

Eu fiz algumas pesquisas para programação em 8 bits há pouco tempo (relacionadas a hobby; eu queria tentar construir alguns componentes eletrônicos básicos). Além de C e Assembly, os únicos idiomas que encontrei mencionados favoravelmente para essas tarefas foram Scheme e Forth.

Inaimathi
fonte
+1 Ah, sim, a construção de eletrônicos básicos será meu hobby em breve e mal posso esperar para começar a usar o Make: Electronics book for this hobby #
Anthony
3

Cython é um exemplo. Não para sistemas embarcados, mas para drivers e outras programações de baixo nível, é usado cada vez mais no mundo Python como um substituto do C. Você obtém um Python compilado, mas também acesso de baixo nível e dicas de tipo para acelerações.

Como fanático por Python, é isso que eu uso, embora seja muito raro e até agora não em nenhum contexto sério.

Lennart Regebro
fonte
1
Nunca ouvi falar disso antes, mas obrigado pela iluminação. =)
gablin
("more an more" -> "more and more") #
317 Peter Mortensen
1
Não acho que o Cython seja tão comum na programação de baixo nível. Eu sinto que é normalmente usado para criar wrappers em torno de C e C ++ para fornecer acesso de nível inferior e acesso a bibliotecas típicas de C ou C ++.
tsturzl
Então, programação de baixo nível, então. :-)
Lennart Regebro
2

Bem, eu trabalhei em sistemas embarcados nos últimos anos usando C e Lua .

Confira o eLua também.

- EDIT: Aqui no Brasil nós temos uma "nova tecnologia" para TV Digital, chamada Ginga . É realmente um padrão, mas nesse padrão a linguagem Lua é usada como uma fonte de linguagem incorporada. O outro é Java.

Acho que podemos citar o Java também, para alguns sistemas especiais como o JavaCards . Se esses não são sistemas incorporados, então eu não sei o que significa incorporado ... :)

Machado
fonte