Пролог, операторная запись и программирование на естественном языке

May 21, 2010 10:04

Часто идут темы насчет программирования на естественном языке, что сильно упрощало бы чтение и написание программ, вот Prolog (Edinburgh style)  мне и понравился в первую очередь такой возможностью которой на мой взгляд нет в других языках (был известный пример на FORTH с "нога ружье прострелить" но это немного не то) и которую программист может по ( Read more... )

prolog, программерское

Leave a comment

Comments 15

fantaseour May 21 2010, 06:09:20 UTC
DSL на нем моделлить :) Хотя вроде как функциональщики хвастаются, что лучше всего DSL делать на фя.

Reply

kouzdra May 21 2010, 06:56:10 UTC
На том же O'Caml можно просто расширять грамматику (при желании вставляя и собственные алгоритмы разбора). Другое дело, что это чуть ли не лучший пример того, почему эта фича имеет крайне ограниченную полезность - кажется единственный осмысленный пример ее использования - система автоматического доказательства Coq, где эта возможность использована для описания синтаксиса логических предложений и хинтов для вывода.

Еще препроцессор Clipper'a можно вспомнить - там с помощью макросов егойного препроцессора из вполне pascal-образного язычка с элементами функциональго (лямбда-выражения и функции высших порядков там были) делался привычный юзерам синтаксис dBase II

Reply


kouzdra May 21 2010, 06:52:17 UTC
Почему-то вспомнился Кобол :)

Reply

raydac May 21 2010, 07:27:41 UTC
забавно что для россиянина понятие естественного языка проблематичнее имхо... когда вспоминаю язык "Рапира" то вздрагиваю :)

Reply

aivanov May 21 2010, 07:33:39 UTC
Оператор "если то иначе все" -)

Reply

kouzdra May 21 2010, 08:07:26 UTC
Зависит от привычки - А68ЛГУ например имел русский вариант и допускал русские имена - пользовались и в общем - было скорее удобно, чем нет. Равно как и упомянутый АКИ был вполне удобен.

А русские версии Кобола и PL/I - это вообще песня :)

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

Собственно, странно, что после кобольского опыта это все еще пытаются возрождать.

PS: Еще есть такой замечательный документ - "Пересмотренное сообщение об Алгол 68" - там формальные грамматики имеют вид текста на естественном языке (причем русская версия тоже есть). Смысла в том как-то немного.

Reply


alll May 21 2010, 07:34:15 UTC
Ггггг. Я такие программульки на "естественном языке" видел ещё для четвёртого фортрана, что-то типа IF age GT 16 AND hours GT 11 GOTO gastronom.

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

Reply

raydac May 21 2010, 08:03:12 UTC
ну на прологе получается несложно ввести оператор is с отношением и писать
earth is planet.
mars is planet.
и это более визуально читабельно чем is(earth, planet). скажем
причем можно задавать даже постфиксные операторы а не только префиксные и инфиксные

Reply


vit_r May 21 2010, 08:22:18 UTC
С Прологом две проблемы:
1. это не естественный язык, а формализованное подмножество естественного языка
2. большинство людей не может выразить свои мысли. Не гоовря уже о том, что абстрактное мышление развито далеко не у всех

Reply

raydac May 21 2010, 09:00:12 UTC
конечно это не естественный язык, но вопрос имхо в приближении к естественному ну а про выражение мыслей это одно из ограничений накладываемое на пролог, в википедии написано "Негибкость заключается в трудности изучения языка, более высоких требований к квалификации программиста на Прологе, трудности отладки программы, неразвитости технологии программирования, плохой контролируемости промежуточных результатов."

Reply

vit_r May 21 2010, 09:21:56 UTC
более высоких требований к квалификации программист

Это та причина, из-за которой большая часть хорошего гибнет.

Reply

raydac May 21 2010, 09:43:12 UTC
на прологе надо объяснять компьютеру суть задания, зачем человеку с такими навыками работать программистом? :)

Reply


(The comment has been removed)

raydac May 21 2010, 19:11:10 UTC
vkontakte один человек писал что он пролог как то успешно заюзал для формализованного описания технического задания.. интересная идея

Reply


Leave a comment

Up