Что значит «системный язык»? - PullRequest
5 голосов
/ 05 ноября 2010

PDF-файл Go talk 2009 содержит комментарий, объясняющий, почему они создали язык go:

No new major systems language in a decade.

Что означает язык систем?

  • Является ли этоязык, который должен работать на целевой системе путем генерации собственного двоичного файла?
  • Это язык, который может создавать операционную систему самостоятельно?

Я вижу, что C # / Java "не" системный язык, а C / C ++ -.

Ответы [ 2 ]

12 голосов
/ 05 ноября 2010

Это грубое, неформальное различие, но идея в том, что существуют «языки программирования приложений», предназначенные для программистов, разрабатывающих сокращенные бизнес-приложения, и «языки системного программирования», предназначенные для программистов, которые программируют инструменты для других программистов (компиляторов).и т. д.) и низкоуровневое программное обеспечение, такое как ядра ОС, драйверы устройств и т. д.

Короче говоря, большинство языков (недавно изобретенных, во всяком случае) разработаны так, чтобы упростить разработку программного обеспечения, ориентированного на пользователя, дляработа с некомпьютерной областью - финансы, инжиниринг и т. д. К системным языкам программирования относятся такие, как C, FORTH, Go и т. д., которые предназначены или, по крайней мере, подходят для программирования в области информатики.

Они часто, но не всегда, имеют функцию компиляции в нативный код, системы свободных типов, которые допускают обширное «наложение» и неуправляемый доступ к памяти через указатели или эквивалентную конструкцию.

3 голосов
/ 05 ноября 2010

Смотрите здесь? Извините, если это выглядит как своего рода одноразовая ссылка, но на самом деле это должно быть все, что вам нужно. Если вы не просите что-то более конкретное.

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

...