Эзотерическое программирование, любителям тайных знаний :)

Свернуть
X
 
  • Время
  • Показать
Очистить всё
новые сообщения
  • Tessaract
    Сатанист

    • 18 August 2004
    • 6119

    #1

    Эзотерическое программирование, любителям тайных знаний :)

    Есть следующий "язык программирования", даю его описание:

    Структура памяти
    Вся область памяти, используемая языком разделена на две части:
    на область данных и область программного кода. Область данных имеет интервал 0 - 3000, область программного кода 3001 - и в зависимости от обьема программы.

    Ячейки памяти 0 - 3 имеют специальное назначение:
    0 - в этой ячейке хранится номер текущей, выполняющейся команды. После выполнения команды значение этой ячейки увеличивается на еденицу
    1, 2 - в этих ячейках хранятся номера команд, на которые передается управление при выполнении операции условного перехода.
    3 - в эту ячейку заносятся результаты математических операций. Последняя ячейка области данных (ячейка 3000) называется стоп-ячейкой. При любом обращении к ней работа программы завершается.

    Типы переменных
    Существует два типа переменных: текстовый символ и число. Текстовый символ занимает один байт, число - четыре байта. Адрес занимает два байта но при хранении его в ячейке он интерпретируется как число. Переменные обратимы, при выполнении математических операций символы обрабатываются как числа из интервала 0 - 255.

    Обращение к данным
    Их три:
    1. Напримую указать текстовый символ или число.
    2. @адрес - обращение к данным по указанному адресу
    3. #адрес - двойная ссылка. Обращение к данным по адресу, который указан в ячейке с адресом "адрес".

    Команды
    В языке всего шесть команд. Здесь и далее "данные" и "число" предусматривают возможность обращения к данным по любому из указанных 3-х типов обращения, о которых было сказано выше.

    < адрес - Печать данных из ячейки памяти, заданной адресом

    > адрес, данные - запись данных в память, заданную адресом. В качестве данных может выступать тексовая строка. В этом случае она автоматически разбивается на символы, которые заносятся в память начиная с указанного адреса и далее по возрастанию. Строка всегда заканчивается пустым символом (0x00), при записи одиночного символа этого не происходит. Вместо пробелов в строках используется символ "_".

    + число1, число2 - сложение двух чисел. Результат помещается в ячейку @3

    * число1, число2 - умножение двух чисел. Результат помещается в ячейку @3

    ! число1, число2 - сравнение двух чисел.
    Если число1 > число2 - управление передается на адрес, хранящийся в ячейке @1
    Если число1 < число2 - управление передается на адрес, хранящийся в ячейке @2
    При равенстве чисел выполняется следующая команда программы.

    ~ адрес1, адрес2 - копирование данных из ячейки "адрес1" в ячейку "адрес2".

    ' - комментарий. Он командой не является и не обрабатывается.
    ==================

    А теперь первая задача:
    Написать на этом чудо-языке классическую программу печати на экран "Hello world", желающие могут сразу попробовать вторую задачу: вывести на экран последовательность чисел Фибоначчи (суть этой последовательности - каждое следующее число равно сумме 2-х предыдущих)

    P.S. "Интерпретатор" находится в стадии разработки, как напишу - выложу куда-нибудь

    P.S.S. Принимаются идеи относительно того, как назвать этот язык

    P.S.S. Самое удивительное, что чисто теоретически язык должен быть способен решить на компьютере любую задачу, если конечно не ограничивать память цифрой 3000!
    Человек человеку волк!!!!!!!!!!!!!!!!
  • MixoID
    R.I.P

    • 09 July 2007
    • 5889

    #2
    Как грицца, получи и распишись!
    Вложения

    Комментарий

    • Tessaract
      Сатанист

      • 18 August 2004
      • 6119

      #3
      Я конечно ценю ваш юмор, забавно было наблюдать за перезагрузкой виртуалки (хорошо хоть диск не отформатировало), но давайте ближе к теме!

      Лучше-бы интерпретатор написали!
      Человек человеку волк!!!!!!!!!!!!!!!!

      Комментарий

      • MixoID
        R.I.P

        • 09 July 2007
        • 5889

        #4
        Сообщение от Tessaract
        Лучше-бы интерпретатор написали!
        Староват и туповат я уже стал... Визуалы всякие подминают под себя народы пачками. Пусть уже лучше молодежь трещит мозгами...

        Комментарий

        • MixoID
          R.I.P

          • 09 July 2007
          • 5889

          #5
          Сообщение от Tessaract
          Принимаются идеи относительно того, как назвать этот язык
          mindfucker ?

          Комментарий

          • Tessaract
            Сатанист

            • 18 August 2004
            • 6119

            #6
            Сообщение от MixoID
            mindfucker ?
            Есть язык с похожим названием BrainF**ck, но идея ваша мне тоже понравилась! Правда у меня на уме больше крутится название "мозголом"
            Человек человеку волк!!!!!!!!!!!!!!!!

            Комментарий

            Обработка...