User Tag List

Показано с 1 по 10 из 85

Тема: Рапира и её создатели

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #13

    Регистрация
    16.11.2015
    Адрес
    г. Москва
    Сообщений
    234
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Расскажу пока подробности про muMATH для Apple. Хотя нас тут убеждают, что это пакет только для ученых и без диплома кандидата наук к нему и подходить нельзя, на деле все проще.

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

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

    Что есть в пакете muMATH?
    1) Операционка ADIOS, которая представляет собой некий гибрид CP/M и штатной DOS 3.3 для Apple. Например, в ней есть команда TYPE, которой можно просматривать находящиеся на диске файлы. Также в ней есть понятие текущего диска. Команда "1:", выбирает первый диск, "2:" - второй. Запуск исполняемых файлов (*.COM) производится командой RUN.
    2) Два варианта интерпретатора MUSIMP.COM и MUSIMPX.COM. Первый расчитан на Apple с 48Кб памяти, второй - на Apple с 64Кб (48Кб + Language Card).
    3) Набор текстовых файлов с программами на muSIMP, которые, собственно, и реализуют все математические функции.

    Еще раз, коротко: голый muSIMP не может ничего делать с уравнениями или матрицами. Он даже в степень не возводит. Все математические возможности появляются после того, как нужная программа на muSIMP загружается в память функцией RDS(ИМЯ,РАСШИРЕНИЕ,ДИСК); и транслируется.

    Например, чтобы посчитать 2 в степени 1800 мне понадобилось загрузить файл ARITH.MUS. Поддержка длинной арифметики в muSIMP встроена, для нее ничего грузить не надо, но это именно 4 действия. Без загрузки ARITH.MUS интерпретатор не знает, что такое ^ и считает выражение 2^1800 просто строкой.

    Уже этого достаточно, чтобы опровергнуть заявления, будто у muSIMP нет поддержки работы с текстовыми строками. Ведь этот код как-то объяснил интерпретатору, что символ ^ - теперь оператор возведения в степень. Впрочем, есть и другое опровержение.

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

    Скрытый текст


    Код:
    FUNCTION EXPT (EX1, EX2,
      % Local: %  EX3),
      EX3: 1,
      WHEN INTEGER (EX1),
        LOOP
          BLOCK
            WHEN REST(EX2:DIVIDE(EX2,2)) EQ 1,
    	  EX3: TIMES(EX1,EX3) EXIT
          ENDBLOCK,
          WHEN ZERO (EX2:FIRST(EX2)), EX3 EXIT,
          EX1: TIMES(EX1,EX1)
        ENDLOOP EXIT,
      LOOP
        BLOCK
          WHEN REST(EX2:DIVIDE(EX2,2)) EQ 1,
    	EX3: EX1*EX3 EXIT
        ENDBLOCK,
        WHEN ZERO (EX2:FIRST(EX2)), EX3 EXIT,
        EX1: SQUARE(EX1)
      ENDLOOP
    ENDFUN$
    [свернуть]


    Поддержка работы с файлами тут тоже есть. Есть функция RDS (ReaD Select), перенаправляющая файл в текущий поток ввода, и функция WRS (WRite Select), перенаправляющая текущий вывод в файл. Когда мы в интерактивном режиме пишем RDS(ИМЯ,РАСШИРЕНИЕ,ДИСК); фактически на вход интерпретатора перенаправляется указанный файл. Этим пользуются интерактивные уроки, отображая текст задания из файла, а потом переключая ввод на клавиатуру, чтобы пользователь мог решить показанные примеры.

    Но есть пример и поинтереснее. Дело в том, что muMATH содержит среду разработки (IDE). На первом диске есть программа TRACE.MUS, которая позволяет отлаживать функции с помощью отладочного вывода.
    А на третьем диске находится... текстовый редактор EDIT! Написанный целиком на muSIMP. Как вам такое? Текстовый редактор на языке якобы без поддержки работы с текстовыми строками.
    Что интересно, в нем есть даже автоматические отступы.

    На том же диске есть программа SAVEPROG, которая позволяет сохранить на диск выбранные функции в виде файла.

    Вот пример ввода функции с помощью редактора и результат ее выполнения.
    Нажмите на изображение для увеличения. 

Название:	muMath3.png 
Просмотров:	73 
Размер:	7.4 Кб 
ID:	75807

    Кстати, этот редактор меня заставил призадуматься над Рапирой. В Рапире вызов редактора не самый очевидный. Нужно написать
    Код:
    ПРОЦ ИМЯ_ПРОЦЕДУРЫ
    после чего будет вызван редактор, в котором появится заготовка процедуры с указанным именем. Дальше мы правим текст процедуры, выходим из редактора и происходит проверка синтаксиса. Если есть ошибки, о них сразу будет выдано сообщение.

    В muMATH можно написать
    Код:
    EDIT(NEWFUNCTION);
    и тоже будет вызван редактор. И в нем будет заготовка функции. Дальше мы правим текст функции, выходим из редактора и происходит проверка синтаксиса. Если есть ошибки, о них сразу будет выдано сообщение.
    Нажмите на изображение для увеличения. 

Название:	muMath4.png 
Просмотров:	76 
Размер:	5.7 Кб 
ID:	75808 Нажмите на изображение для увеличения. 

Название:	muMath5.png 
Просмотров:	65 
Размер:	4.3 Кб 
ID:	75809 Нажмите на изображение для увеличения. 

Название:	muMath6.png 
Просмотров:	69 
Размер:	2.5 Кб 
ID:	75810

    По-моему, сделано все один в один. И вот возникает вопрос, а может, разработчики Рапиры подглядели этот интерфейсный ход в muMATH? Ведь известно, что проводились закупки как самих Apple, так и софта для них. Так что они вполне могли держать этот пример перед глазами.

    Этот пользователь поблагодарил avivanov76 за это полезное сообщение:

    Lethargeek(09.07.2021)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •