Quelles langues sont utilisées aujourd'hui pour la programmation de bas niveau? [fermé]

13

Quand j'entends de la programmation de bas niveau, comme pour les pilotes, les systèmes embarqués, les systèmes d'exploitation, etc., je pense immédiatement au C et peut-être au C ++. Mais surtout C.

Mais quelles autres langues sont également utilisées pour ce genre de tâches? Aujourd'hui, je veux dire, pas ce qui a été utilisé.

gablin
la source

Réponses:

14

La programmation de bas niveau, telle que la programmation des pilotes, est un mélange d'un langage d'assemblage et de C.

Le langage d'assemblage est utilisé pour parler au matériel et C est utilisé pour parler au noyau.

david4dev
la source
Je parlais des langues à un niveau supérieur à l'assemblage, mais votre argument est toujours valable, bien sûr. =)
gablin
8
Dépend du système d'exploitation, sous Windows ou Linux, il n'y a pas besoin de langage d'assemblage lors de l'écriture des pilotes. Vous pouvez très bien accéder au matériel avec C.
Jim A
6
La seule fois où vous travaillez vraiment avec l'assemblage, c'est lorsque vous traitez avec des bizarreries spécifiques à l'architecture, généralement lorsque vous travaillez sur quelque chose comme un gestionnaire de mémoire virtuelle. Cependant, le programmeur qui écrit un pilote de périphérique est rarement exposé à cela. Ils utilisent les installations qui existent.
Tim Post
8

Ada est toujours utilisé dans les systèmes de sécurité / critiques, car il offre toujours des fonctionnalités de sécurité relativement inégalées.

Il était obligatoire d'utiliser Ada jusqu'à la fin des années 90 au sein du DoD et dans d'autres domaines, mais il ne l'est plus, il n'est donc pas aussi largement utilisé qu'il l'était autrefois. Mais il peut encore être trouvé dans des utilisations très critiques, l'avionique, le nucléaire, etc.

Les versions modernes ont une orientation objet et un bon support pour le traitement parallèle, elles sont donc tout à fait utiles.

Orbling
la source
1
Je pense que nous utiliserons Ada dans l'un des cours sur les systèmes embarqués que je suivrai au printemps.
gablin
1
@gablin: Oui, il est couramment utilisé dans les systèmes embarqués, un très bon choix pour cela.
Orbling
6

J'ai fait quelques recherches pour la programmation 8 bits il y a quelque temps (en rapport avec les loisirs; je voulais essayer de construire de l'électronique de base). Outre C et Assembly, les seules langues que j'ai trouvées mentionnées favorablement pour ces tâches étaient Scheme et Forth.

Inaimathi
la source
+1 Oh oui, la construction de l'électronique de base va bientôt être mon hobby et j'ai hâte de commencer à utiliser Make: Electronics book for this hobby
Anthony
3

Cython en est un exemple. Pas pour les systèmes embarqués, mais pour les pilotes et autres programmes de bas niveau, il est de plus en plus utilisé dans le monde Python en remplacement de C. Vous obtenez à la fois un Python compilé, mais aussi un accès de bas niveau et des conseils de type pour les accélérations.

En tant que fanatique de Python, c'est ce que j'utilise, bien que certes très rarement et jusqu'à présent pas dans un contexte sérieux.

Lennart Regebro
la source
1
Je n'en ai jamais entendu parler auparavant, mais merci pour l'illumination. =)
gablin
("de plus en plus" -> "de plus en plus")
Peter Mortensen
1
Je ne pense pas que Cython soit réellement commun pour la programmation de bas niveau. Je pense que son généralement utilisé pour créer des wrappers autour de C et C ++ pour donner un accès de niveau inférieur et un accès aux bibliothèques C ou C ++ typiques.
tsturzl
Alors, programmation de bas niveau, alors. :-)
Lennart Regebro
2

Eh bien, j'ai travaillé sur les systèmes embarqués ces dernières années en utilisant C et Lua .

Découvrez eLua également.

- EDIT: Ici au Brésil, nous avons une "nouvelle technologie" pour les téléviseurs numériques, appelée Ginga . C'est vraiment une norme, mais dans cette norme, le langage Lua est utilisé comme une source de langage intégré. L'autre est Java.

Je suppose que nous pouvons également citer Java, pour certains systèmes spéciaux comme JavaCards . Si ce ne sont pas des systèmes embarqués, je ne sais pas ce que signifie embarqué ... :)

Machado
la source