Стили и методы программирования




Структура данных


Данные, обрабатываемые языком Рефал, представляют собой последовательности атомов, структурированные несколькими согласованными между собою видами скобок. Например, в некотором конкретном синтаксисе такое выражение могло бы иметь вид {a+[b-(c+d)**2]/3}*(a+d). В поле памяти Рефал-машины задействованы два вида скобок: структурные и функциональные.

Выражения языка Рефал.

  1. Атомы являются выражениями.
  2. Любая последовательность выражений является выражением.
  3. Выражение E, заключенное в структурные скобки, является выражением. Атомы и выражения в структурных скобках носят общее имя термов.
  4. Если E — выражение, A — описанный в программе атом, AE, заключенное в функциональные скобки, является выражением (называемым функциональным выражением). A называется детерминативом этого выражения.

В конкретном синтаксисе Рефала функциональные скобки обозначаются < >, структурные -- ( ). Атомы делятся на:

  1. Символы (байты, простые символы).
  2. Составные символы (имена, определенные в программе) представлены идентификаторами, начинающимися с большой буквы.
  3. Целые числа без знака, меньшие 232, например, 123456789.
  4. Действительные числа, например, 123456789.E-5.

В поле памяти выделяется основная часть, а также стеки глобальных данных - закопанные данные. Перед каждым шагом исполнения в основной части поля памяти выделяется активная часть - поле зрения. Данные в поле зрения и закопанные данные имеют общую структуру1), которая является подструктурой структуры поля памяти. Поскольку и программа имеет практически ту же самую структуру2), в ходе развития языка появилась третья структура данных (метаданные), расширяющая поле памяти.

Дадим точные определения.

Объектное выражение — выражение, не содержащее функциональных скобок.

Минимальное функциональное выражение — выражение, имеющее вид <E>, где E — объектное выражение.

поле памяти Рефал-машины представляет собой набор выражений, одно из которых называется основной частью. В основной части в любой момент, за исключением момента выдачи окончательного результата и остановки программы, есть функциональные скобки.




Содержание  Назад  Вперед