Skip to content

Научиться конвертировать программу в ограниченный Рефал #2

@Mazdaywik

Description

@Mazdaywik

Что такое «ограниченный Рефал»

Ограниченный Рефал — подмножество базисного Рефала, в образцах которого недопустимы открытые переменные и повторные e- и t-переменные. Такие образцы называются L-выражениями.

Подмножество интересно тем, что в нём выразима и замкнута прогонка.

Турчин также запрещал в ограниченном Рефале t-переменные, но их добавление ни сколько не влияет на выразимость прогонки.

Общий взгляд на преобразование

Также, как и ранее, предлагается моделировать сопоставление с образцом, и когда фиксируются «дырки открытых переменных», что-то делать. Но не только это.

Ещё нужно внимательнее обрабатывать закрытые переменные — если закрытая переменная с таким же именем уже встречалась, то это повторная переменная.

Пока образец не преобразован к виду L-выражения, мы даже не смотрим — есть ли при нём условие. Когда уже преобразован — обработка условия становится тривиальной.

Поэтому нужно:

  • описать подход к преобразованию образцов к L-виду,
  • реализовать описанный конвертор.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions