Какой язык вы бы использовали в своей ОС? - PullRequest
10 голосов
/ 12 июня 2009

Вероятно, это скорее субъективный вопрос, но какой язык (кроме API, например .NET или JDK) вы бы использовали, если бы вы писали свою собственную операционную систему? Какой язык обеспечивает гибкость, простоту и, возможно, низкоуровневый интерфейс к оборудованию? Я думал о Java или C ...

Ответы [ 26 ]

0 голосов
/ 12 июня 2009

http://www.dwheeler.com/sloc/redhat71-v1/redhat71sloc.html - доля языков в исходном коде Linux.

0 голосов
/ 12 июня 2009

Некоторые скажут, что Java.

Обратите внимание, что openfirmware написано частично на Forth, и это очень низкий уровень.

Имей непредвзятость.

0 голосов
/ 12 июня 2009

Для ОС вам нужна скорость на самых низких уровнях. Таким образом, ассемблер, C, C ++, Objective-C или Java кажутся текущими вариантами Хотя только недавно Java стала быстрой, и мне сложно представить операционную систему с сборкой мусора.

Если бы я писал свой собственный, это была бы смесь ассемблера и C.

0 голосов
/ 12 июня 2009

C по ряду причин. Другие кандидаты, такие как D, великолепны. Однако у C есть это преимущество: есть много доступного кода на C с открытым исходным кодом, который вы можете использовать в своем проекте (гораздо больше, чем для других языков, подходящих для системного программирования).

0 голосов
/ 25 августа 2011

Паскаль + Оберон: они обладают мощью C и C ++, но их использование не так сложно. Оба эти языка сильно недооценены.

0 голосов
/ 12 июня 2009

Я бы разрывался между использованием некоторого существующего языка низкого уровня и написанием своего собственного на C #, но с гораздо лучшей поддержкой обобщений. Во втором случае я бы сделал каждый метод универсальным, но все ограничения будут разрешены компилятором - чтобы разрешить «типизацию», как в Scala, но все же язык должен быть статичным. Также статические виртуальные методы снизили бы кодовую базу.

У меня была эта идея в течение долгого времени, но она никогда не представляется осуществимой в реальном времени, так что, кто знает, может быть, в будущем. : -)

...