Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Как это по-русски ...
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Altur Altur вне форума
Member
 
Сообщений: 91
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2005
По умолчанию 27.11.2007, 23:01

У Турбо Пролога была одна симпатичная черта, когда многие (написанные в декларативном стиле) его предложения можно было пересказать обычным человеческим языком. И наоборот, некоторые рассуждения (записанные на английском языке) могли работать как программы. Для этого ряд знаков ТПролога могли быть без ущерба для функциональности заменены на слова человеческого языка: (:- = if), (, = and), (; = or). Такая особенность облегчала программирование для непрофессионалов - стоило лишь записать словами свое размышление о задаче, а затем немного подправить в соответствии с условиями ТПролога - и программа готова. При переходе к VIP, и особенно к VIP6 и далее были перенесены наработки других языков, успешно справляющихся с современным оборудованием и возросшим объемом программ. Но при этом та симпатичная черта Пролога была загнана на задний план, стала незаметной и, возможно, несущественной. А жаль. У меня просьба к тем, кто хорошо освоился с синтаксисом VIP6-7, не могли бы вы на русском языке пересказать некоторые начальные участки программ (которые приходится писать почти в любом случае), например из тех, что приведены в книге E.Costa, чтобы их писать не автоматически, а осознавая, что делаешь. Скажем, эти:

Код:
clauses
   onMouseDown(S,Point,_ShiftControlAlt,_Button):-
    W=S:getVPIWindow(), ...

    onFileNew(S,_MenuTag):-Q=query::new(S),Q:show().
________
class facts
   mousePoint:=pnt(-1,-1).
predicates
   onMouseDown: drawWindow::mouseDownListener.
clauses
   onMouseDown(_S,Point,_ShiftControlAlt,_Button):-
    mousePoint:=Point, ...
Ответить с цитированием
  (#2 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,958
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 28.11.2007, 00:09

ТО, что Вы привели, писать ручками не надо. Этот код:
Код:
onMouseDown(S,Point,_ShiftControlAlt,_Button):-

onFileNew(S,_MenuTag):-
вставляется автоматически. Имена предикатов говорят сами за себя.
То, что Вы пишете о Турбе, по большому счёту осталось и в VIP. Просто появились дополнительные вкусности.
Ответить с цитированием
  (#3 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 28.11.2007, 10:59

Altur, и "раньше" на правила, описывающие предикат, можно было смотреть как с декларативной точки зрения, так и с процедурной. Так что здесь, когда речь идет о GUI, лучше бы смотреть с процедурной.
Например, когда происходит выбор пункта меню File -> New, создается объект класса query и происходит визуализация соответствующей формы.
Предикат onFileNew истинен, если тело правила истинно.
Вызов предиката onFileNew завершится успехом, если оба описанных выше действия выполнятся успешно.
Ответить с цитированием
  (#4 (permalink)) Старый
Altur Altur вне форума
Member
 
Сообщений: 91
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2005
По умолчанию 28.11.2007, 21:53

Я понимаю, это выглядит глуповато, но мне было бы гораздо приятнее вместо знаков ( := :: : ) проговаривать про себя какие-то слова. Вероятно, мозги так устроены, что запоминаются только осмысленные действия. А то, что их ручками писать не надо, так иногда надо и ручками подправить (если понимаешь, что написано).
Ответить с цитированием
  (#5 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 29.11.2007, 22:01

x := a
"запомним значение a в факте-переменной x"

c::q
"предикат q класса c"

O:p
"метод p объекта O"

Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Altur Altur вне форума
Member
 
Сообщений: 91
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2005
По умолчанию 02.12.2007, 14:48

Alison, большое спасибо Вам за помощь! (А то подсмеиваться все горазды).
Ответить с цитированием
  (#7 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 03.12.2007, 00:08

(над собой подсмеиваются, может даже не замечая этого )
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как писать по-русски в паскале анюта_1_47 Pascal 15 20.06.2011 11:34
Custom fields по-русски olgainet Вопросы начинающих программистов 0 13.06.2011 21:02
парадокс или развод по русски? Denius Опросы и мнения 2 11.02.2011 09:29
Не пишет по русски NeloS Windows XP 4 03.09.2010 15:30
Не пишет по русски.Помогите. NeloS Любые вопросы от новичков 9 31.08.2010 19:09
Как заставить Агента говорить по-русски под Вистой Lessi .NET 1 17.03.2009 12:25
Yahoo Messenger по русски!!! sandzhi Софт и программы 1 15.01.2009 00:45
как писать по-русски? Настяяя Prolog 5 10.01.2008 16:10
Почему пишут не по русски? kelz Офтопик 77 31.12.2005 19:11
On-Line игры в интернете (FallOut по-русски) Beast777 Офтопик 0 27.10.2004 14:07
Под Windows XP TurboPascal не хочет писать по-русски Anonymous Pascal 6 28.06.2004 05:59
SourceFourge по русски Fireworm Некоммерческие проекты 3 18.02.2004 18:06



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов