Иллюстрированный самоучитель по Mathematica



              

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


Помните, что нет программы, которую нельзя хоть чуть-чуть, но улучшить и сократить. Однако при этом цените затраченное на это время!
  • По мере возможности используйте готовые апробированные программные модули — изобретать велосипед и делать то, что уже сделано, неразумно.
  • Обращайте особое внимание на реализацию механизма контекстов, позволяющего избежать грубых ошибок при модернизации различных объектов программ, прежде всего наборов функций.
  • Не слишком оригинальничайте! Не применяйте программные трюки и недокументированные приемы программирования. Такие программы в момент создания могут выглядеть удивительно эффектными и потрясающе оригинальными, но вполне возможно, что в следующей версии системы они перестанут работать вообще, поскольку разработчики обычно стараются исключить любые недокументированные трюки в своих программах.
  • Применение этих рекомендаций на практике позволит вам создавать программы, которые нужны не только вам, но и многим пользователям системы Mathematica. Только такие программы могут быть размещены в Интернете и, вполне возможно, войти в пакеты расширения и электронные книги системы Mathematica.

    Трассировка программных модулей

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

    Функция Trace [ехрг] позволяет выполнить трассировку выражения ехрг. Возьмем простой пример — вычисление выражения 2 (3 + 4) 2 /5:

    Trace[2 (3 + 4)^2 / 5]

    {{{{3+4, 7 },7^2,49}, {1/5,1/5}, 49/5, 49/5}, 249/5, 98/5}

    Результат трассировки представлен вложенными списками, имеющими два элемента — вычисляемое выражение и результат вычислений. В частности, для приведенного примера отчетливо видно, что вначале вычисляется выражение в круглых скобках (3 + 4) и получается результат 7, который затем возводится в квадрат — получается число 49. Затем вызывается явно не записанная единица для деления на 5, потом 49 умножается на 1/5 и, наконец, 49/5 умножается на 2 и получается конечный результат.


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