Что такое язык программирования?

Википедия говорит:

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

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

Спасибо!

г.

Ответ 1

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

Языки программирования не ограничиваются традиционными компьютерами (см. K'NEX Computer) и даже не обязательно ограничиваются вычислительными устройствами вообще. Например, когда я доволен поведением своей собаки, он получает удовольствие. Когда я недоволен, он ничего не получает. Со временем собака учится лечить/не лечить программирование, и я могу использовать лечение, чтобы контролировать его поведение (в некоторой степени).

Ответ 2

Язык программирования - это именно тот набор соглашений, но я не понимаю, почему это делает ввод в Википедии ошибочным. Если вам станет лучше, вы можете отредактировать его, чтобы прочитать что-то вроде:

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

Ответ 3

Я не вижу, что отличается от того, что вы просите...

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

... и определение Википедии.

Ключ в том, что язык программирования - это просто "машиночитаемый искусственный язык".

Ответ 4

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

Тем не менее, действительно существует много языков (Hi there, PHP!), в которых компилятор является единственной спецификацией существующего языка. Эти языки часто меняются непредсказуемо, поскольку ошибки компилятора фиксируются или вводятся.

Ответ 5

Языки программирования - это уровень абстракции, который помогает изолировать программиста от необходимости говорить в электрических сигналах на компьютере. Создатели языка проделали всю тяжелую работу по созданию структуры (языка) или стандартного (грамматика, сопряжение и т.д.), Которые затем могут быть интерпретированы компилятором в терминах, которые понимает компьютер.

Ответ 6

Все языки программирования - это не что иное, как языки, специфичные для домена, для машинного кода или манипуляции с регистрами и памятью обрабатывающего объекта.

Ответ 7

Это, вероятно, истинное объяснение того, что такое язык программирования:

Шаг 1: Подумайте о языке и его грамматике, которая представляет собой набор правил для создания синтаксически допустимых утверждений с использованием языка. Например, язык, называемый GRID, имеет плитки {0,1} в качестве своих правил алфавита и грамматики, которые гарантируют, что каждый оператор GRID имеет равную длину и высоту.

Шаг 2 (определение программы): GRID до сих пор бесполезен. Я бы осмелился думать о каком-либо действительном утверждении GRID как о просто данных. Нам нужно добавить что-то еще в GRID: функцию-преемник. Итак, GRID = {Грамматика, алфавит, функция-преемник}. Чтобы это было ясно, давайте использовать правила "Игры жизни" как функцию преемника.

Шаг 3: Игра Жизни на самом деле Тьюринга завершена, поэтому GRID = {Грамматика, алфавит, функция-преемник = GOL} может выполнять любое вычислимое вычислимое.

Язык программирования - это не что иное, как язык с последующей функцией. Окружающая среда, которая оценивает действительную формулировку языка (программы), ничего не делает, кроме следующих функций-преемников. Например, переменные - это вещи, функции преемников которых = (ОСТАВАЙТЕ ЖЕ САМОЕ)

Компьютеры - это очень быстрая среда;)