Welche Sprachen werden heute für Low-Level-Programmierung verwendet? [geschlossen]


13

Wenn ich Low-Level-Programmierung höre, beispielsweise für Treiber, eingebettete Systeme, Betriebssysteme usw., denke ich sofort an C und möglicherweise an C ++. Vor allem aber C.

Aber welche anderen Sprachen werden auch für diese Art von Aufgaben verwendet? Heute, ich meine, nicht das, was wurde verwendet.

Antworten:


14

Normalerweise ist die Low-Level-Programmierung wie die Treiberprogrammierung eine Mischung aus einer Assemblersprache und C.

Die Assemblersprache wird verwendet, um mit der Hardware zu kommunizieren, und C wird verwendet, um mit dem Kernel zu kommunizieren.


Ich meinte Sprachen auf einer höheren Ebene als Assembler, aber Ihr Punkt ist natürlich immer noch gültig. =)
gablin

8
Abhängig vom Betriebssystem, unter Windows oder Linux wird beim Schreiben von Treibern keine Assemblersprache benötigt. Sie können problemlos mit C auf die Hardware zugreifen.
Jim A

6
Das einzige Mal, dass Sie wirklich mit Assembly arbeiten, ist das Arbeiten mit architekturspezifischen Macken, normalerweise, wenn Sie an so etwas wie einem virtuellen Speichermanager arbeiten. Der Programmierer, der einen Gerätetreiber schreibt, ist davon jedoch selten betroffen. Sie nutzen die vorhandenen Einrichtungen.
Tim Post

8

Ada wird immer noch in sicherheits- und unternehmenskritischen Systemen eingesetzt, da es immer noch unvergleichliche Sicherheitsmerkmale bietet.

Es war obligatorisch, Ada bis Ende der neunziger Jahre innerhalb des Verteidigungsministeriums und in einigen anderen Bereichen zu verwenden, aber es ist nicht mehr erforderlich und wird nicht mehr so ​​häufig verwendet wie früher. Aber es kann immer noch in sehr kritischen Anwendungen, Avionik, Atomkraft usw. gefunden werden.

Die modernen Versionen haben eine Objektorientierung und eine gute Unterstützung für die parallele Verarbeitung, so dass sie immer noch nützlich sind.


1
Ich denke, wir werden Ada in einem der Embedded-Systems-Kurse verwenden, die ich im Frühjahr absolviere.
Gablin

1
@gablin: Aye, es wird häufig in eingebetteten Systemen verwendet, eine gute Wahl dafür.
Orbling

6

Ich habe vor einiger Zeit ein wenig nach 8-Bit-Programmierung gesucht (hobbybezogen; ich wollte versuchen, eine Grundelektronik zu bauen). Abgesehen von C und Assembly waren die einzigen Sprachen, die ich für diese Aufgaben positiv erwähnt habe, Scheme and Forth.


+1 Oh ja, das Bauen von Basiselektronik wird bald mein Hobby sein und ich kann es kaum erwarten, Make: Electronics für dieses Hobby zu nutzen
Anthony

3

Cython ist ein Beispiel. Nicht für eingebettete Systeme, sondern für Treiber und andere Low-Level-Programme wird es in der Python-Welt immer häufiger als Ersatz für C verwendet. Sie erhalten sowohl einen kompilierten Python als auch Zugriffs- und Tipptipps für Geschwindigkeitsverbesserungen.

Als Python-Fanatiker verwende ich das, allerdings sehr selten und bislang in keinem ernsthaften Zusammenhang.


1
Noch nie davon gehört, aber danke für die Erleuchtung. =)
gablin

("mehr und mehr" -> "mehr und mehr")
Peter Mortensen

1
Ich glaube nicht, dass Cython für Low-Level-Programmierung so üblich ist. Ich glaube, es wird normalerweise verwendet, um Wrapper um C und C ++ zu erstellen, um Zugriff auf niedrigere Ebenen und Zugriff auf typische C- oder C ++ - Bibliotheken zu ermöglichen.
tsturzl

Also, Programmierung auf niedriger Ebene. :-)
Lennart Regebro

2

Nun, ich habe in den letzten Jahren mit C und Lua einige Arbeiten an eingebetteten Systemen durchgeführt .

Schauen Sie sich auch eLua an.

- EDIT: Hier in Brasilien haben wir eine "neue Technologie" für Digitalfernsehen, genannt Ginga . Es ist wirklich ein Standard, aber in diesem Standard wird die Lua- Sprache als eine Quelle für eingebettete Sprache verwendet. Der andere ist Java.

Ich denke, wir können Java auch für einige spezielle Systeme wie JavaCards zitieren . Wenn das keine eingebetteten Systeme sind, dann weiß ich nicht, was eingebettet bedeutet ... :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.