Какие языки используются сегодня для низкоуровневого программирования? [закрыто]

13

Когда я слышу низкоуровневое программирование, такое как драйверы, встроенные системы, операционные системы и т. Д., Я сразу думаю о C и, возможно, C ++. Но в основном С.

Но какие еще языки используются для таких задач? Сегодня я имею в виду не то, что было использовано.

gablin
источник

Ответы:

14

Обычно низкоуровневое программирование, такое как программирование драйвера, представляет собой смесь языка ассемблера и C.

Язык ассемблера используется для связи с оборудованием, а C - для связи с ядром.

david4dev
источник
Я имел в виду языки на более высоком уровне, чем ассемблер, но, конечно, ваша точка зрения остается в силе. =)
Габлин
8
Зависит от операционной системы, в Windows или Linux нет необходимости в языке ассемблера при написании драйверов. Вы можете получить доступ к оборудованию просто отлично с C.
Джим A
6
Единственный раз, когда вы действительно работаете со сборкой, это когда имеете дело с специфическими особенностями архитектуры, обычно когда работаете над чем-то вроде менеджера виртуальной памяти. Программист, пишущий драйвер устройства, однако, редко подвергается этому. Они используют объекты, которые существуют.
Тим Пост
8

Ada по-прежнему используется в системах безопасности / критически важных системах, поскольку она все еще предлагает относительно беспрецедентные функции безопасности.

До конца девяностых годов в DoD и некоторых других областях было обязательно использовать Ada, но он больше не используется, поэтому используется не так интенсивно, как раньше. Но это все еще можно найти в крайне критических целях, авионике, ядерной энергетике и т. Д.

Современные версии имеют объектную ориентацию и хорошую поддержку параллельной обработки, поэтому все еще очень полезны.

Orbling
источник
1
Я думаю, что мы будем использовать Ada на одном из курсов по встраиваемым системам, которые я беру весной.
Габлин
1
@ gablin: Да, он обычно используется во встраиваемых системах, и это хороший выбор для этого.
Orbling
6

Некоторое время назад я провел некоторое исследование для 8-битного программирования (связанное с хобби; я хотел попробовать создать основную электронику). Кроме C и Assembly единственными языками, которые я нашел в качестве благоприятных для этих задач, были Scheme и Forth.

Inaimathi
источник
+1 О да, сборка базовой электроники скоро станет моим хобби, и я не могу дождаться, чтобы начать использовать книгу Make: Electronics для этого хобби
Энтони
3

Cython является одним из примеров. Не для встроенных систем, но для драйверов и других низкоуровневых программ. В мире Python все больше и больше используется в качестве замены C. Вы получаете как скомпилированный Python, так и низкоуровневый доступ и подсказки типов для ускорений.

Как фанат Python, этим я и пользуюсь, хотя, по общему признанию, очень редко и пока не в каком-либо серьезном контексте.

Леннарт Регебро
источник
1
Никогда не слышал об этом раньше, но спасибо за просвещение. =)
Габлин
(«больше и больше» -> «больше и больше»)
Питер Мортенсен,
1
Я не думаю, что Cython на самом деле настолько распространен для низкоуровневого программирования. Я чувствую, что он обычно используется для создания оберток вокруг C и C ++ для предоставления доступа более низкого уровня и доступа к типичным библиотекам C или C ++.
tsturzl
Итак, низкоуровневое программирование. :-)
Леннарт Регебро
2

Ну, в последние годы я немного поработал над встроенными системами, используя C и Lua .

Проверьте также eLua .

- РЕДАКТИРОВАТЬ: Здесь, в Бразилии, у нас есть «новая технология» для цифровых телевизоров, называемая Ginga . Это действительно стандарт, но в этом стандарте язык Lua используется как один из источников встроенного языка. Другой является Java.

Я предполагаю, что мы можем ссылаться и на Java, для некоторых специальных систем, таких как JavaCards . Если это не встраиваемые системы, то я не знаю, что такое встроенные системы ... :)

Мачадо
источник