Jakie języki są dziś używane do programowania niskiego poziomu? [Zamknięte]

13

Kiedy słyszę programowanie niskiego poziomu, takie jak sterowniki, systemy wbudowane, systemy operacyjne itp., Od razu myślę o C i być może C ++. Ale głównie C.

Ale jakie inne języki są również używane do tego rodzaju zadań? Dzisiaj mam na myśli nie to, co zostało użyte.

gablin
źródło

Odpowiedzi:

14

Zwykle programowanie niskiego poziomu, takie jak programowanie sterowników, jest mieszanką języka asemblera i C.

Język asemblerowy służy do komunikacji ze sprzętem, a język C do komunikacji z jądrem.

david4dev
źródło
Miałem na myśli języki na wyższym poziomie niż asembler, ale twój punkt jest oczywiście nadal aktualny. =)
gablin
8
Zależy od systemu operacyjnego, w systemie Windows lub Linux podczas pisania sterowników nie jest potrzebny język asemblera. Możesz uzyskać dostęp do sprzętu w porządku z C.
Jim A
6
Jedyny czas, w którym naprawdę pracujesz z asemblerem, to zajmowanie się specyficznymi dla architektury dziwactwami, zwykle podczas pracy z czymś takim jak menedżer pamięci wirtualnej. Jednak programista piszący sterownik urządzenia rzadko jest na to narażony. Korzystają z istniejących udogodnień.
Tim Post
8

Ada jest nadal używana w systemach o kluczowym znaczeniu dla bezpieczeństwa / misji, ponieważ wciąż oferuje względnie niezrównane funkcje bezpieczeństwa.

Używanie Ady było obowiązkowe do końca lat dziewięćdziesiątych w ramach DoD i niektórych innych obszarów, ale nie jest już dłużej używane, więc nie jest tak intensywnie używane, jak kiedyś. Ale nadal można go znaleźć w wysoce krytycznych zastosowaniach, awionice, energii jądrowej itp.

Nowoczesne wersje mają orientację obiektową i dobre wsparcie dla przetwarzania równoległego, więc jest nadal całkowicie przydatne.

Orbling
źródło
1
Myślę, że użyjemy Ady na jednym z kursów systemów wbudowanych, które biorę na wiosnę.
gablin
1
@gablin: Tak, jest powszechnie stosowany w systemach wbudowanych, co jest całkiem dobrym wyborem.
Orbling
6

Niedawno przeprowadziłem badania dotyczące programowania 8-bitowego (związane z hobby; chciałem spróbować zbudować podstawową elektronikę). Oprócz języków C i Zgromadzenia jedynymi językami, o których wspominałem pozytywnie w tych zadaniach, były Scheme i Forth.

Inaimathi
źródło
+1 Och, tak, budowanie podstawowej elektroniki będzie wkrótce moim hobby i nie mogę się doczekać, aby zacząć korzystać z książki Make: Electronics dla tego hobby
Anthony
3

Cython jest jednym z przykładów. Nie dla systemów wbudowanych, ale dla sterowników i innych programów niskopoziomowych jest coraz częściej używany w świecie Pythona jako zamiennik C. Dostajesz zarówno skompilowany Python, ale także dostęp do niskiego poziomu i wskazówki dotyczące przyspieszeń.

Jako fanatyk Pythona właśnie tego używam, chociaż co prawda bardzo rzadko i jak dotąd nie w żadnym poważnym kontekście.

Lennart Regebro
źródło
1
Nigdy wcześniej o tym nie słyszałem, ale dziękuję za oświecenie. =)
gablin
(„more an more” -> „more and more”)
Peter Mortensen
1
Nie sądzę, że Cython jest tak powszechny w programowaniu na niskim poziomie. Wydaje mi się, że zwykle jest używany do tworzenia opakowań wokół C i C ++, aby zapewnić niższy poziom dostępu i dostęp do typowych bibliotek C lub C ++.
tsturzl
Zatem programowanie niskiego poziomu. :-)
Lennart Regebro,
2

Cóż, pracowałem nad systemami wbudowanymi przez ostatnie lata, używając C i Lua .

Sprawdź również eLua .

- EDYCJA: W Brazylii mamy „nową technologię” dla telewizji cyfrowej, zwaną Ginga . Jest to naprawdę standard, ale w tym standardzie język Lua jest używany jako jedno ze źródeł języka osadzonego. Drugi to Java.

Myślę, że możemy cytować także Javę, dla niektórych specjalnych systemów, takich jak JavaCards . Jeśli to nie są systemy wbudowane, to nie wiem, co to oznacza ... :)

Machado
źródło