Материал: Волченков Логическое программирование язык пролог 2015

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Public Declare Sub ExitGoal Lib "INT386W" (ByVal _ Prolog As Integer)

Sub ЧастичноВычислитьВыражение()

Dim S1 As String, S2 As String, S As String, N As Integer G = "valuate_expretion" ' Имя программы на Прологе

Dim x As String

' Dim OutString As Object

Prolog_Renamed = LoadProlog("/H100000 /R100000 /B100000 /L100000")

If Prolog_Renamed < 0 Then MsgBox "LoadProlog Error " & _ Str(Prolog_Renamed) & _

"!", MsgBoxStyle.Critical

End

End If

G = "consult(" & G & "). "

x = InitGoal(Prolog_Renamed, G)

x = CallGoal(Prolog_Renamed) ExitGoal (Prolog_Renamed)

x = InitGoal(Prolog_Renamed, "an. ")

' an – это имя целевого предиката

OutString = CallGoal(Prolog_Renamed) HaltProlog (Prolog_Renamed)

End Sub

Код 10.8. Модуль Листа книги Excel

Private Sub ButtonПоказатьПользовательскуюФорму_Click()

UserForm1.Show

End Sub

Код 10.9. Модуль формы UserForm1

Private Sub Button_ЗагрузитьПрологПрограмму_Click()

Open "valuate_expretion.pl" For Input As #1

Dim S As String

Do Until EOF(1)

Line Input #1, S

156

TextBox1.Text = TextBox1.Text & vbCrLf & S Loop

Close #1 End Sub

Private Sub Button_ЗагрузитьИсходноеВыражение_Click() Open "string.txt" For Output As #2

Print #2, TextBox2.Text Print #2, vbCrLf

Close #2 End Sub

Private Sub Button_Вычислить_ПоказатьРезультат_Click()

Call ЧастичноВычислитьВыражение

Open "struct.txt" For Input As #3 Dim S1 As String, S2 As String Line Input #3, S1

Line Input #3, S2

TextBox3.Text = "Анализируемое выражение: " & _ vbCrLf & S1 & vbCrLf & vbCrLf & _

"Значение выражения: " & vbCrLf & S2 Close #3

End Sub

Программа на Прологе для данного примера не нуждается в представлении: она показана на рисунке 10.7 – в левом текстовом поле на пользовательской форме.

Вывод: Интерфейс декларативного языка Пролог и императивного визуального языка Visual Basic открывает программистам ши-

рокие перспективы сочетать возможности эффективной реализации символьных преобразований (Пролог) с возможностями реализации алгоритмически сложных вычислений и визуализации – в частности, применения машинной графики (Visual Basic).

157

Литература, источники в интернете

1.Robinson J. A., A machine-oriented logic based on the resoulution principle, Journal of the ACM, v. 12, January 1965. pp. 23-41.

2. A. Colmerauer, Ph. Roussel. The birth of Prolog. The ACM Digital Library. Book: History of programming languages-II. ACM, New York, NY, USA. 1996. – pp. 331-367.

3.Alain Colmerauer and Philippe Roussel. The birth of Prolog. URL: http://alain.colmerauer.free.fr/alcol/ArchivesPublications/PrologHist ory/ 19november92.pdf

4.Клоксин У., Меллиш К. Программирование на языке Пролог/ Пер. с англ.; Под ред. А.К.Платонова и Ю.М.Лазутина. М.:

Мир, 1987. – 336 с.

5.Стобо Дж. Язык программирования Пролог/ Пер. с англ.; Под ред. Н.Г.Волченкова. М.: Радио и связь, 1993. – 368 с.

6.Малпас Дж. Реляционный язык Пролог и его применение/ Пер. с англ.; Под ред. В.Н.Соболева. М.: Наука, 1990. – 464 с.

7. Стерлинг Л., Шапиро Э. Искусство программирования на

языке Пролог/ Пер. с англ.; Под ред. Ю.Г.Дадаева. М.: Мир,

1990. – 235 с.

8.Чери С., Готлоб Г., Танка Л. Логическое программирование и

базы данных/ Пер. с англ.; Под ред. Л.А.Калиниченко. М.: Мир,

1992. – 352 с.

9.Братко И. Алгоритмы искусственного интеллекта на языке PROLOG/ Пер. с англ.; Под ред. К.А.Птицина. М.: Издательский дом «Вильямс», 2004. – 640 с.

10.Сергиевский Г.М., Волчёнков Н.Г. Функциональное и логическое программирование: учебное пособие для студ. высш. учеб. заведений. М.: Издательский центр «Академия», 2010. – 320 с.

158

Источник: https://studfile.net/preview/16708744/