Языки программирования являются формальными языками , но в отличие от многих формализмов, они также имеют определенное внутреннее значение, определяемое их операционной семантикой или, в случае языков разметки, семантикой представления . И языки программирования, хотя и формальные, очень похожи на естественные языки с точки зрения общения, которое они допускают.
В то время как развитие языков программирования является искусственным, естественно-языковые процессы эволюции, заимствования, смешивания и мутации имеют достаточно четкие искусственные аналоги. Поэтому я задаюсь вопросом: проводились ли когда-либо масштабные и глубокие исследования эволюции и поведения языков программирования с точки зрения лингвиста ?
programming-languages
spoken-languages
Джон Перди
источник
источник
Ответы:
Помните, что формальные грамматики, без которых современное программирование не могло быть, являются продуктом исследования лингвиста Ноама Хомского .
Автомобильная авария не позволила мне закончить дипломную работу по теме, о которой вы спрашиваете, поэтому я не могу дать вам никаких ссылок, только мнение.
Разговорные языки развиваются с любой скоростью, в зависимости от контекста, и это происходит непредсказуемым образом, как непредсказуемый человеческий контекст. Результаты Второй мировой войны оказали огромное влияние на японский язык. Британцы, австралийцы, южноафриканцы и жители Северной Америки не совсем говорят на одном языке. Использование склонений глаголов среди испанских колоний стало совершенно другим после двухсот лет независимости (бывшие колонии считают, что испанский язык Испании архаичен ).
Только сила эффективности над фонетикой заставляет разные слова, используемые с разными частотами в разных регионах, произноситься по-разному: очень распространенные слова произносятся или пишутся с ошибками, а менее распространенные слова произносятся с максимально возможной точностью.
Естественные языки с их вариациями, нюансами и эволюцией не подходят для детерминизма, который мы требуем от компьютеров. (Ну и дела! Учитывая общность неправильных интерпретаций и вторых интерпретаций, кажется, что они не годятся даже для самых простых взаимодействий между людьми [воздерживаются от цитирования шуток о том, что говорит девушка / парень-друг и что это на самом деле означает])
источник
Я перечитал вопрос, и я думаю, что мой первоначальный ответ не касался этого. Вот еще одна попытка.
Нет, я не знал ни о каком серьезном исследовании лингвистики языка программирования. Были прослежены языковые линии для двух основных ветвей и подотрасли:
Для тех из нас, у кого десятилетия в этой области, очевидно, что языки программирования смешались, и, таким образом, можно найти большинство аспектов любой чистой парадигмы в большинстве современных языков программирования, теперь называемых многопарадигмальными языками программирования : C #, Python, Java, .. .. Даже ранее чисто функциональные языки, такие как OCaml и Haskell, включают достаточно процедурных (через монады ) и функций OO, чтобы позволить вам что-либо делать.
Я думаю, что произошло то, что стало очевидно, что переключение языков программирования стоило (если не глупо) просто для того, чтобы иметь возможность применить правильную парадигму к данной подзадаче.
Остается исключение из тенденции в области высокопараллельных и асинхронных систем. Там предпочтительные языки строго функциональны, как и Erlang , возможно потому, что о таких сложных системах проще думать функционально.
Непарадигматическая часть эволюции была на синтаксисе. Языки, которые поощряют или даже допускают загадочные программы, становятся все менее и менее используемыми ( APL , AWK и даже Perl и LISP). В настоящее время доминирующими являются синтаксисы более читаемых (в отличие от легко записываемых) языков, таких как C (C ++, C #, Java, Objective-C, Scala, Go, IML, CSS, JavaScript, а также Python), Pascal (Fortran 90+). x), Smalltalk (Ruby), ML / Miranda (OCaml, Haskell, Erlang) и SGML (HTML, XML).
Эта диаграмма не совсем точна, и она не является современной, но она дает хорошее представление о том, сколько языков программирования сошлось со времен эры языков на сайт 1970-х годов.
источник
Мне нравятся ответы @ Apalala, которые, кажется, показывают сближение с несколькими основными языками общего назначения. Это имеет смысл только потому, что другие могут рано или поздно поднять хорошую идею.
Я хотел бы добавить, что всякий раз, когда кто-то использует язык, он обязательно расширяет его, добавляя термины, превращая его в язык, более ориентированный на предметную область. Иногда это довольно просто, иногда нет. Вот пример, который не был таким простым.
Свойство, которое я ценю в языке общего назначения, - это степень, в которой оно помогает в определении новых предметно-ориентированных языков.
источник