Re: Refal+ abstract syntax


Subject: Re: Refal+ abstract syntax
From: Andrey Slepuhin (pooh@msu.ru)
Date: Fri Nov 26 1999 - 16:14:36 MSK


���� ������!

������ "���� ���������� � ���� ��������� ������":
������, ��� ��� t.Pattern, t.Format � t.Result :-)

���������, �� ��� ������, ����� �������� ���:

1) t.Pattern ���������� ������� �������� ���������� � ��������,
������� ��� ���� �������� ����������. ������� �������� ����������
��� ���� �� ���������� (� ������+ ��� ������ ����������).
�.�. ���� R - ������������ ���������, �� ������ ����
  R : e1, R : e2
����� ����������� ���

t.Result t.Pattern t.Pattern
   R e1 e2

2) t.Format ���������� ������� �������� ���������� � ������� �������,
������� ��� ���� �������� ����������. ������� �������� ����������
��� ���� �� ���������� (� ������+ ��� ������ ����������).
�.�. ���� R - ������������ ���������, �� ������ ����
  R :: e1, R :: e2
����� ����������� ���

t.Result t.Format t.Format
   R e1 e2

3) � t.Result ���� ������� ����-���� �������. ����������
������������������
t.Result t.Block
������: ����� �� ���������� t.Block �������� �������� ����������
��� ����������������� � ��� ������������? �������� �� ����� � ��
� ������. �����������: ������ ��� "Flush", ������� ����� ����������
������� �������� ����������. ����� t.Result � t.Block �����
������ ����������������� � ������� �����������.

�� ����, � �������������� ������-X (� ����� ������ ������������
������� ����������� ���� ��� ������������, ���� ���������� ��������)

'a' {'b';} -> t.Result t.Block
                       'a' {'b';}
  
'a', {'b';} -> t.Result "Flush" t.Block
                       'a' {'b';}

����� ������� ����� ������� ����� ���������� �� "Flush"
(�� ����������� ��������� ����������� - ��. ����)
������ � ������+ ����� ������� �������� ������ ������ ����
������, �.�. ���� ����� ������� ����� ������������ ��������� R
� �������� �������� ��������, �� ���� ������, ������, R::e,
���, � �����-�� �� ����� ���������.
���������. ��������� ���� R : e1, R : e2 �������� ������������� �

t.Result t.Pattern "Flush" t.Result t.Pattern
    R e1 R e2

���� ����� ���� ��������������� ��

t.Result t.Pattern t.Pattern
    R e1 e2

�����. "Not" ���-���� ��������� � e.Statement � ������ ������ ����
"Not" (e.Statement)
�����
"Not" ("Not" (e.Statement))
����� ������ �������� ���������.

� �����, �������, ��������� ���������� ����, ��� ��������� ������������
������.
� �������� �������� ��� �������� (� ��������� ��� ���-���� �� ��������
�����), � ���� ������������ �� ������� ����.

����� �������,
������.



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:58 MSD