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


13

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

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

Ответы:


14

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

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


Я имел в виду языки на более высоком уровне, чем ассемблер, но, конечно, ваша точка зрения остается в силе. =)
Габлин

8
Зависит от операционной системы, в Windows или Linux нет необходимости в языке ассемблера при написании драйверов. Вы можете получить доступ к оборудованию просто отлично с C.
Джим A

6
Единственный раз, когда вы действительно работаете со сборкой, это когда имеете дело с специфическими особенностями архитектуры, обычно когда работаете над чем-то вроде менеджера виртуальной памяти. Программист, пишущий драйвер устройства, однако, редко подвергается этому. Они используют объекты, которые существуют.
Тим Пост

8

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

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

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


1
Я думаю, что мы будем использовать Ada на одном из курсов по встраиваемым системам, которые я беру весной.
Габлин

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

6

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


+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 . Если это не встраиваемые системы, то я не знаю, что такое встроенные системы ... :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.