Во-первых, давайте определим «язык» с точки зрения того, что это такое. Язык требует сначала словарный запас (список слов, которые определяют понятия, которые являются объектами общения), а затем синтаксис («учебник для начинающих» или набор правил, которые определяют структуру общения).
На этом базовом уровне C # не сильно отличается от английского. Что делает C # «языком программирования», так это его намерение и, следовательно, его дизайн; он предназначен для обработки отдельными командами низкого уровня. Таким образом, предопределенный словарный запас ограничен, синтаксис очень жестко применяется, и весь язык разработан так, чтобы его «аудитория» (компьютер; точнее, компилятор, который будет переваривать), использовалась очень хорошо известным предопределенным способом. исходный код на «промежуточный язык» простых команд, которые затем могут быть далее переведены в машинный код «средой выполнения»). Вы не пишете прозу или поэзию на C #; Вы приказываете компьютеру выполнять работу самым недвусмысленным образом.
Для компьютеров да, инструмент, обычно называемый компилятором, необходим для того, чтобы взять то, что вы пишете в коде, и преобразовать его в инструкции, которые может использовать компьютер. Информатика, как и большинство технологий, является по своей сути итеративным, «многоуровневым» процессом. Когда компьютеры были впервые изобретены, они были запрограммированы путем ручного ввода двоичных инструкций. Эти инструкции стали стандартизированы для каждого процессора в шестнадцатеричные «машинные коды»; Разница только в том, как двоичные цифры сгруппированы для отображения людям. Затем в коде ассемблера список команд и некоторые базовые идентификаторы, такие как имена регистров, были заменены их шестнадцатеричными кодами при написании программ; ASM все еще можно конвертировать 1: 1 в машинный код. Квантовый скачок был к «императивному» программированию 3-го поколения, который в основном берет более понятные человеку абстрактные понятия, такие как переменные и логические циклы, и переваривает их в нативные инструкции, используя шаблоны, основанные на ключевых словах и синтаксисе. Ранние языки, такие как COBOL, FORTRAN, Pascal и C, все еще могут быть «переведены» человеком на определенный машинный язык (обычно 8086 ASM). Затем произошла революция объектно-ориентированного программирования, которая заключается в дополнительных правилах синтаксиса, которые определяют код как концептуально инкапсулированный в «объектах», которые имеют некоторую комбинацию состояния и логики. человеком на определенный машинный язык (обычно 8086 ASM). Затем произошла революция объектно-ориентированного программирования, которая заключается в дополнительных правилах синтаксиса, которые определяют код как концептуально инкапсулированный в «объектах», которые имеют некоторую комбинацию состояния и логики. человеком на определенный машинный язык (обычно 8086 ASM). Затем произошла революция объектно-ориентированного программирования, которая заключается в дополнительных правилах синтаксиса, которые определяют код как концептуально инкапсулированный в «объектах», которые имеют некоторую комбинацию состояния и логики.
В настоящее время мы хорошо разбираемся в «четвертом поколении» языков, которые являются языками, написанными для определения связи с другими программами, а не непосредственно с машиной. В широком смысле это включает языки «разметки», такие как XML / HTML, языки «сценариев», такие как JavaScript и SQL, и большинство языков «песочницы», таких как Java и .NET Framework (которые компилируются в IL, который затем интерпретируется среда выполнения, которая абстрагирует детали машины и платформы). Можно также сказать, что он охватывает область функциональных языков программирования, которые ТЯЖЕЛО зависят от среды выполнения, чтобы обеспечить абстракцию не только специфических для машины деталей, но и специфичных для операции деталей. Эти языки четвертого поколения для человека более или менее невозможны для перевода на машинные инструкции, и дело в том, что это не будет стоящим усилием; Сила этих языков - многоуровневый процесс, в котором они используются, чтобы в конечном итоге сказать компьютеру, что делать на низких уровнях.