Что такое формальный язык программирования? - PullRequest
6 голосов
/ 19 апреля 2010

Что означает, что язык программирования является формальным языком программирования? А какие языки являются официальными языками программирования? А какие неформальные языки программирования?

Я еще не нашел хорошего объяснения.

Ответы [ 6 ]

9 голосов
/ 19 апреля 2010

Каждый язык программирования является формальным языком, поэтому для меня нет особого смысла говорить о «формальном языке программирования». (Или кто-то знает неформальный язык программирования?)

Формальный язык - это язык с математически точными правилами построения. Или, точнее, это набор слов по алфавиту. Например, если вы берете алфавит, состоящий из букв a, b и c, формальным языком над этим алфавитом может быть набор {a, aa, aba, ca} , Конечно, такой язык не был бы очень полезен - дело в том, что с приличным набором правил построения вы можете создать такой язык, как C или PostScript.

Что касается «правил построения», то они могут представлять собой формальную грамматику (см. Грамматику для CSS ), регулярное выражение (см. Это gorgeous regex для адресов электронной почты как определяется RFC 822), автоматом или общим алгоритмом.


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

2 голосов
/ 19 апреля 2010

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

0 голосов
/ 19 декабря 2017

Другие ответы относятся к определению формального языка программирования в соответствии с информатикой. Тем не менее, этот ответ относится к определению формального языка программирования согласно Social (wannabe) Science.

Согласно dictionary.com, одно из определений для «формального» - being in accordance with the usual requirements, customs, etc.; conventional.

Формальный язык программирования - это язык программирования, который широко используется и принят человеком, говорящим об этом. Следовательно, это зависит от предметной области и разговора. Возможно, лучший способ формулировки является «популярным», традиционный, широко распространенный или широко распространенный язык программирования. Например, в бизнесе и промышленности это относится к SQL, Java, C#, C++, Python и PHP.

Примерами неформальных языков программирования являются SPL (язык программирования Шекспира), FORTRAN и CoffeeScript. Точнее сказать, что один язык более условен и, следовательно, формален, чем другой, чем сказать, что один язык формален, а другой - неформален. В конце концов, Lisp будет очень неформальным языком программирования для создания веб-сайта, но очень формальным языком программирования для разработки исследований в области искусственного интеллекта.

0 голосов
/ 24 сентября 2016

Это не «формальный язык», это формальный метод программирования: Википедия . Это должен быть не конкретный язык, а способ написания спецификации и проверки кода.

0 голосов
/ 17 февраля 2013

Формальные языки - это языки, которые больше ничего не думают о правильности. Это означает, что достаточным и необходимым условием является соблюдение его правил. Пример правила:

Например, Если мы определим язык для десятичных чисел как {x | конечный набор цифр без начальных нулей}. (проще говоря, десятичные дроби означают последовательность цифр.)

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

Но при практическом использовании, если язык обрабатывает 001 как десятичное число, мы можем заключить, что язык программирования не является формальным, поскольку он не совсем соответствует набору правил, который он определяет.

Обычно парсер языка проверяет эти правила. Таким образом, формальный язык всегда должен быть правильно сформирован (строго следовать его собственным правилам)

0 голосов
/ 19 апреля 2010

Вот выдержка из Википедии

"Джон К. Рейнольдс подчеркивает, что языки формальных спецификаций являются такими же языками программирования, как и языки, предназначенные для выполнения. Он также утверждает, что текстовые и даже графические форматы ввода, влияющие на поведение компьютера, являются языками программирования, несмотря на факт, что они обычно не являются полными по Тьюрингу, и отмечает, что незнание концепций языка программирования является причиной многих недостатков в форматах ввода "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...