DRAKON.SU

Текущее время: Среда, 17 Апрель, 2024 00:07

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Пятница, 30 Март, 2018 16:10 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Подробнее отвечу позже.

В качестве введения даю цитату из английской Википедии
По-русски звучит так:
Цитата:
Формализм Джона Мак-Карти


https://en.wikipedia.org/wiki/McCarthy_Formalism
Цитата:
McCarthy Formalism

From Wikipedia, the free encyclopedia

In computer science and recursion theory the McCarthy Formalism (1963) of computer scientist John McCarthy clarifies the notion of recursive functions by use of the IF-THEN-ELSE construction common to computer science, together with four of the operators of primitive recursive functions: zero, successor, equality of numbers and composition. The conditional operator replaces both primitive recursion and the mu-operator.

Contents
1 Introduction
1.1 McCarthy's notion of conditional expression
1.2 Minsky's explanation of the "formalism"
1.3 Expansion of IF-THEN-ELSE to the CASE operator
2 Notes
3 References

Introduction

McCarthy's notion of conditional expression

McCarthy (1960) described his formalism this way:

"In this article, we first describe a formalism for defining functions recursively. We believe this formalism has advantages both as a programming language and as a vehicle for developing a theory of computation....

" We shall need a number of mathematical ideas and notations concerning functions in general. Most of the ideas are well known, but the notion of conditional expression is believed to be new, and the use of conditional expressions permits functions to be defined recursively in a new and convenient way."

Minsky's explanation of the "formalism"

In his 1967 Computation: Finite and Infinite Machines, Marvin Minsky in his §10.6 Conditional Expressions: The McCarthy Formalism describes the "formalism" as follows:

"Practical computer languages do not lend themselves to formal mathematical treatment--they are not designed to make it easy to prove theorems about the procedures they describe. In a paper by McCarthy [1963] we find a formalism that enhances the practical aspect of the recursive-function concept, while preserving and improving its mathematical clarity. ¶ McCarthy introduces "conditional expressions" of the form

f = (if p1 then e1 else e2)

where the ei are expressions and p1 is a statement (or equation) that may be true or false. ¶

This expression means
See if p1 is true; if so the value of f is given by e1.
IF p1 is false, the value of f is given by e2.

This conditional expression . . . has also the power of the minimization operator. . ..

The McCarthy formalism is like the general recursive (Kleene) system, in being based on some basic functions, composition, and equality, but with the conditional expression alone replacing both the primitive-recursive scheme and the minimization operator." (Minsky 1967:192-193)

Minsky uses the following operators in his demonstrations:[1]

Zero
Successor
Equality of numbers
Composition (substitution, replacement, assignment)[2]
Conditional expression
From these he shows how to derive the predecessor function (i.e. DECREMENT); with this tool he derives the minimization operator necessary for "general" recursion, as well as primitive-recursive definitions.

Expansion of IF-THEN-ELSE to the CASE operator

In his 1952 Introduction of Meta-Mathematics Stephen Kleene provides a definition of what it means to be a primitive recursive function:

"A function φ is primitive recursive in ψ1, ..., ψk (briefly Ψ), if there is a finite sequence φ1, ..., φk of (occurrences of) functions ... such that each function of the sequence is either one of the functions Ψ (the assumed functions), or an initial function, or an immediate dependent of preceding functions, and the last function φk is φ." (Kleene 1952:224)

In other words, given a "basis" function (it can be a constant such as 0), primitive recursion uses either the base or the previous value of the function to produce the value of the function; primitive recursion is sometimes called mathematical induction

Minsky (above) is describing a two-CASE operator. A demonstration that the nested IF-THEN-ELSE—the "case statement" (or "switch statement")--is primitive recursive can be found in Kleene 1952:229[3] at "#F ('mutually-exclusive predicates')".

The CASE operator behaves like a logical multiplexer and is simply an extension of the simpler two-case logical operator sometimes called AND-OR-SELECT (see more at Propositional formula). The CASE operator for three cases would be verbally described as: "If X is CASE 1 then DO "p" else if X is CASE 2 then do "q" else if X is CASE "3" then do "r" else do "default".

Boolos-Burgess-Jeffrey 2002 observe that in a particular instance the CASE operator, or a sequence of nested IF-THEN-ELSE statements, must be both mutually exclusive, meaning that only one "case" holds (is true), and collectively exhaustive, meaning every possible situation or "case" is "covered". These requirements are a consequence of the determinacy of Propositional logic; the correct implementation requires the use of truth tables and Karnaugh maps to specify and simplify the cases; see more at Propositional formula. The authors point out the power of "definition by cases":

"...in more complicated examples, definition by cases makes it far easier to establish the (primitive) recursiveness of important functions. This is mainly because there are a variety of processes for defining new relations from old that can be shown to produce new (primitive) recursive relations when applied to (primitive) recursive relations." (Boolos-Burgess-Jeffrey 2002:74)

They prove, in particular, that the processes of substitution, graph relation (similar to the identity relation that plucks out (the value of) a particular variable from a list of variables), negation (logical NOT), conjunction (logical AND), disjunction (logical OR), bounded universal quantification, or bounded existential quantification can be used together with definition by cases to create new primitive recursive functions (cf Boolos-Burgess-Jeffrey 2002:74-77).


Для нашей темы выделяю "главную мысль"
Цитата:
f = (if p1 then e1 else e2)
where the ei are expressions and p1 is a statement (or equation) that may be true or false. ¶

This expression means
See if p1 is true; if so the value of f is given by e1.
IF p1 is false, the value of f is given by e2.


Когда выполняется e1? Когда p1 истинно.
В моих обозначениях: Когда Z (главный выход) принимает значение Да.

Когда выполняется e2? Когда p1 ложно.
В моих обозначениях: Когда Z (главный выход) принимает значение Нет, а неZ (инверсный выход) принимает значение Да.

Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Март, 2018 18:25 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Владимир Паронджанов писал(а):
1) доказать, что формула для инверсного выхода схемы И (конъюнкции) является правильной.
2)доказать, что инверсия этой формулы совпадает с формулой для главного выхода схемы И (конъюнкции).
Как бы это всего лишь докажет, что вы правильно выполнили тривиальное преобразование графов.
Зачем?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 31 Март, 2018 20:01 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
LKom писал(а):
Изображение
Значение переменной Z может быть использовано, к примеру, в различных ветках схемы Силуэт.

Где и как в схеме переменной Z выполняется присваивание значения выражения: A & B & C ?

Куда надо подключить инверсный вывод "Стандартной или нестандартной схемы И" ?

Правильно ли на схеме писать: -Z = -A + A & -B + A & B & -C ?
Переменной с операцией инверсии нельзя выполнять присваивание, т.к. это уже не переменная, а выражение.
Может надо писать так: Z = - ( -A + A & -B + A & B & -C ) ? Как Вы думаете?
Что на схеме обозначают точки? Надеюсь не переменную Z .
---
Эти вопросы составляют основу языка Дракон!

Мой ответ представлен на упрощенном рисунке, где формализм МакКарти представлен в виде дракон-схемы.

В данном случае Z — это не переменная (на дракон-схеме), а всего лишь пояснительная надпись, комментарий.
Жирные точки я убрал для упрощения схемы.

Вложение:
Рис. 84а Фрагмент Развилка .png
Рис. 84а Фрагмент Развилка .png [ 50.22 КБ | Просмотров: 4560 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 31 Март, 2018 21:21 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Владимир Ситников писал(а):
А какая практическая применимость?
Пробовали вместо абстрактных A, B, C использовать осмысленные выражения?
Тогда будет гораздо проще понимать. И у "выхода" может смысл появиться.

Возможно, C лишнее условие, ведь логика понятна, и C лишь запутывает картинку/формулу.

Владимир, по вашему совету я вместо A, B, C привожу пример с осмысленными выражениями (из области медицины).

Вложение:
01. Лев Пароксизм  Министр Порядин  .png
01. Лев Пароксизм Министр Порядин .png [ 135.61 КБ | Просмотров: 4548 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 01 Апрель, 2018 10:03 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1357
Вложение:
ДляТемы.png

Владимир Даниелович, сравните схемы со своими рисунками.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 01 Апрель, 2018 12:10 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
LKom писал(а):
Владимир Даниелович, сравните схемы со своими рисунками.

Обсудим левую схему.

1. В иконе Полка написано Z = true
По-моему, это комментарий.

2. Если удалить эту икону Полка, ничего не изменится.
3. Если удалить вторую икону Полка, тоже ничего не изменится.

4. Отсюда следует, что левая схема ничего не делает; она не нужна.
В обоих случаях (по левому маршруту и по правому маршруту в схеме ничего не происходит.
Получается, что схема лишена смысла.

А как вы считаете?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 01 Апрель, 2018 13:52 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1357
Икона Полка в Драконе выполняет роль оператора присваивания.
В книге "Как ..." страница 161
Цитата:
Операторы (Полка) языка ДРАКОН означают, что логической переменной “Норма.насоса” присваивается значение “1” и “0” соответственно.

Можно отказаться от визуализации присваивания в иконе Полка и использовать икону Действие.
Смотрите, как будет выглядеть.
Вложение:
ДляТемы2.png
Понятнее и нагляднее стало?

Владимир Паронджанов писал(а):
4. Отсюда следует, что левая схема ничего не делает; она не нужна.
В обоих случаях (по левому маршруту и по правому маршруту в схеме ничего не происходит.
Получается, что схема лишена смысла.

А как вы считаете?
Считаю, что Вы игнорируете существование переменных Z и f, игнорируете присвоение им значений.

Почему мы говорим об этих переменных?
Переменные и присвоение им значений присутствует у Вас в:
Изображение

Цитата:
Для нашей темы выделяю "главную мысль"
Цитата:
f = (if p1 then e1 else e2)
where the ei are expressions and p1 is a statement (or equation) that may be true or false. ¶

This expression means
See if p1 is true; if so the value of f is given by e1.
IF p1 is false, the value of f is given by e2.
Перевод Google:
Цитата:
f = (если p1, то e1 иначе e2)
где ei - выражения, а p1 - утверждение (или уравнение), которое может быть истинным или ложным.

Это выражение означает
Посмотрите, является ли p1 истинным; если да, то значение f задается через e1.
Если p1 является ложным, значение f задается через e2.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 01 Апрель, 2018 18:43 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
LKom писал(а):
Считаю, что Вы игнорируете существование переменных Z и f, игнорируете присвоение им значений.
Переменная Z дублирует уже известные вещи. Поэтому она не нужна.

Конечно, можно присвоить ей значение, как это делаете вы. Но такая операция лишена смысла.

Чтобы убедиться в этом, надо заменить абстрактные буквы на содержательные понятия.

В моих примерах я использовал логическую переменную Z только в качестве комментария, только в качестве пояснения.

Цитата:
Переменные и присвоение им значений присутствует у Вас
Это не так. У меня нет присвоения значений.

Вы правы, я писал Z = A & B & C

Но здесь знак = не означает операцию присвоения.
Здесь Z = это всего лишь обозначение. Но никак не присвоение.

Вместо того, чтобы писать "A & B & C" я заменяю это выражение для краткости на букву Z.
Так что у меня нет никакого присвоения.

Обозначение и присвоение — разные вещи.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 17 Апрель, 2018 08:38 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1357
01.04.2018
Владимир Паронджанов писал(а):
Но здесь знак = не означает операцию присвоения.

Надеюсь утверждение "знак = не означает операцию присвоения" не является первоапрельской Драконовской шуткой?

Какой смысл у знака "="?, почему использован знак "="?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 17 Апрель, 2018 09:00 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
LKom писал(а):
Какой смысл у знака "="?, почему использован знак "="?
В математике часто возникает необходимость заменять громоздкие выражения одной буквой. Или при замене переменной (например https://ru.wikipedia.org/wiki/%D0%9C%D0 ... 0%BA%D0%B8)
При этом используется знак равенства (но не присвоения).

Цитата:
здесь знак = не означает операцию присвоения.
Здесь Z = это всего лишь обозначение. Но никак не присвоение.

Вместо того, чтобы писать "A & B & C" я заменяю это выражение для краткости на букву Z.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


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

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB