Нехай i ∈ ℕ, i > 0. Далі:
Ri позначення реєстра i реєстрової машини;
[Ri] позначення вмісту реєстру i, це може бути будь-яке натуральне число.
Синтаксис
I. Елементарні команди
Ia. Ai це програми RM.
Ib. Si це програми RM.
II. Процеси побудови
IIa. Якщо P і Q є програмами RM, то PQ також є програмою RM.
IIb. Якщо P є програмою RM, то (i P) також є програмою RM.
III. Реалізація
Виконання програми РМ на один бал.
Семантика
I. Елементарні команди
Ia. Підрахунок: Ai збільшує вміст Ri на одиницю.
Ib. Підрахунок у зворотному напрямку: якщо [Ri] > 0, то Si зменшує вміст Ri на одиницю, інакше його вміст залишається нульовим.
II. Процеси побудови
IIa. Послідовне виконання: PQ спочатку виконує P, потім Q.
IIb. Контрольоване повторення: (i P) виконує P, поки значення регістра i не дорівнюватиме нулю.
III. Реалізація
Командна точка досягнута: завершення обробки програми RM.
якщо β є списком, то β, i також є списком, де i ∈ {a, ... z}.
Q є дійсною програмою (як визначено вище) лише з i ∈ {a, ... z}.
i або <α> можна опустити, але принаймні один із них має бути вказаний.
Програми Ai та Si не можна перезаписати.
Семантика
Семантика підпрограм значною мірою відповідає семантиці програми.
Малі літери є змінними. Під час виконання вони замінюються номерами, що відповідають реєстрам. Змінні, які не є аргументами, тобто не відображаються ліворуч від знака рівності, вважаються допоміжними рєстрами. Допоміжні реєстри створюються та очищуються за потреби під час виконання програми та не вказуються в області Реєстри.
Приклад (попередньо визначеної) підпрограми: Ti<j>=(j SjAi).
Під час виклику Ti<j> у програмі змінні i та j замінюються реєстрами, наприклад,T2<1>. Цей виклик виконує (1 S1A2).
Якщо функція f обчислюється програмою RM Pf функція номера кроку обчислення RSPf може бути використана для визначення зусиль, необхідних для обчислення. У розрахунок зусиль включаються всі виконані елементарні команди, тобто всі необхідні для розрахунку випадки виконання Ai i Si.
Приклад:
За допомогою Pa: (1S1A2) можна обчислити функцію a(x1,x2)=x1+x2.
У цьому випадку обчислювальні зусилля залежать лише від x1,але не від x2.
Результати арифметичної крокової функції для Pa: RSPa(x1)=2x1
Швидкий початок
Існують два різні режими:
Введення/редагування програми
Послідовність програми
Для перемикання між цими двома режимами необхідно ввести (синтаксично) правильну програму RM у прямокутне біле поле, яке є вільним, за винятком однієї чорної точки.
Зміни вносяться за допомогою кнопки-перемикача «Ініціалізувати програму» / «Редагувати програму», яка розташована вгорі ліворуч, безпосередньо під заголовком «Програма RM».
Програма RM
Реєстр
Основна програма вимагає більше реєстрів, ніж було створено.
R1:
R2:
R3:
R4:
Встановити значення реєстру:
Програма
.
✓
Підпрограми
Завантажити стандартні програми під час ініціалізації
Історія програми
(з коміркою рекурсії)
Етапи розрахунку: 0
Програма може потрапити в нескінченний цикл, оскільки в стек рекурсії вноситься багато змін без виклику Ai або Si. Будь ласка, перевірте програму та, якщо ви хочете, щоб вона продовжилася, знову натисніть одну з кнопок Крок.
Програма намагається викликати підпрограму, яка не була визначена. Перейдіть у режим редагування програми та визначте підпрограму.
Рульове керування
Один крок
Автоматичні кроки з перервою від
Обчислення результату зупинятися після кроків
Параметри
Перевірка програми під час введення
Показати кількість кроків розрахунку
Показати історію програми
Збереження та завантаження програм
Вивести попередньо визначені підпрограми, якщо вони завантажені під час ініціалізації
зберегти на комп'ютері:
навантаження:
Попередньо визначені підпрограми RM
Зверніть увагу, що ці попередньо визначені підпрограми RM можна замінити вашими власними визначеннями.
Виклик
RM-програма
Значення
Li<i>
(iSi).
Погасити
Ti<j>
(jSjAi).
Транспортувати
Ki<j>
(jSjAiAh)(hShAj).
Копіювати
Ae<i,j>
Ke<i>Ke<j>.
нормоване додавання
Me<i,j>
Kh<i>(hShKe<j>).
нормоване множення
Інструкції
Програмне забезпечення RM складається з двох основних частин. У першій частині, що складається з реєстру та програми, визначається поточна програма з усіма її компонентами. У другій частині під назвою «Контроль» програма виконується. Одночасно активна лише одна з двох частин. Активна частина має білий фон, а неактивна – сірий. Ви можете вносити зміни та виконувати дії лише в поточній активній частині.
Щоб переключатися між основними частинами, натисніть кнопку ініціалізації програми (або редагування програми) над основними частинами.
Ви можете перейти до області виконання, лише якщо всі визначення синтаксично правильні та ви створили достатню кількість реєстрів (без допоміжних реєстрів). Синтаксично неправильні програми позначаються червоною рамкою, а якщо реєстри відсутні, видається попередження.
Якщо ви перемикаєтеся на область визначення, поточне обчислення припиняється.
Зауважте, що програмним забезпеченням RM не можна керувати лише за допомогою клавіатури. Зокрема, поля введення для програм повинні бути активовані клацанням миші.
Початкові значення для реєстрів вводяться в область реєстрів.
Нова вкладка додається за допомогою кнопки «+».
Останній реєстр видаляється кнопкою «-».
За допомогою кнопки "Null" усі реєстри встановлюються на нуль.
За допомогою кнопки «Початкові значення останньої ініціалізації» всі реєстри встановлюються на значення під час останньої ініціалізації.
Програма реєстраційної машини вводиться в поле Programm (див. визначення).
Зверніть увагу: у деяких браузерах використання клавіші «backspace» навіть під час введення програм призводить до переходу браузера на попередню веб-сторінку. Якщо це стосується вашого браузера, ви можете використовувати стрілку вгору замість клавіші «backspace».
Підпрограми визначаються в області підпрограм (див. визначення).
Поля введення для підпрограм створюються кнопкою «+».
Відповідні поля введення видаляються кнопкою «Видалити поле введення».
У контролері ви вибираєте спосіб запуску реєстраційної машини.
Якщо під час виклику підпрограм програма виявляє те, що здається нескінченним циклом, вона призупиняється та видається попередження. Ви можете продовжити роботу програми за допомогою елементів керування, якщо хочете.
За допомогою «Один крок» крок вперед, тобто одне застосування Ai або Si.
За допомогою «автоматичних кроків» ви автоматично переходите вперед. Можна вибрати тривалість паузи між кроками.
За допомогою «розрахувати відповідь»ви можете запустити програму до кінця, автоматично зупинившись після певної кількості кроків, щоб розірвати нескінченні цикли. Якщо відбулося переривання, ви можете дозволити програмі продовжити роботу з елементами керування. Можна вибрати кількість кроків, після яких потрібно зупинитися.
Етапи розрахунку показують, скільки запитів до Ai та Si було здійснено на даний момент.
Історія програми вказує на поточний стан розрахунку реєстрової машини. Поточний крок має світло-зелений фон. Будь ласка, зверніть увагу, що комірка рекурсії — це лише: комірка; тобто програма знаходиться внизу, а виклики підпрограм розміщуються над нею.
Параметри для виводу можна зробити в області параметрів.
В області збереження та завантаження програм можна виводити та читати програми з попередньо визначеними підпрограмами та без них.