4 @c OriginalRevision=1.23
5 @c TranslatedBy: (c) 2007-06 Vadim V. Zhytnikov <vvzhyt@gmail.com>
8 * Введение в окружение времени выполнения::
10 * Функции и переменные времени выполнения::
14 @node Введение в окружение времени выполнения, Прерывания, Окружение времени выполнения, Окружение времени выполнения
15 @section Введение в окружение времени выполнения
16 @c THIS DISCUSSION OF maxima-init.mac REPLACES AN EARLIER WRITE-UP. !!!
17 @c HOWEVER IT SEEMS THAT THIS TEXT REALLY WANTS TO BE UNDER A DIFFERENT HEADING. !!!
18 Файл @code{maxima-init.mac} загружается автоматически при каждом запуске Maxima.
19 Можно использовать @code{maxima-init.mac} для настройки своего персонального Maxima окружения.
20 Файл @code{maxima-init.mac} обычно размещается в директории,
21 определяемой переменной @code{maxima_userdir}, хотя может находиться и в любой другой
22 директории, просматриваемой функцией @code{file_search}.
24 Пример содержимого файла @code{maxima-init.mac}:
27 setup_autoload ("specfun.mac", ultraspherical, assoc_legendre_p);
31 Здесь, @code{setup_autoload} заставляет Maxima загружать файл @code{specfun.mac},
32 если функции @code{ultraspherical} или @code{assoc_legendre_p} вызываются,
33 но не определены в момент вызова. При этом нет нужды помнить
34 о необходимости загружать соответствующий файл до вызова данных функций.
36 Команда @code{showtime: all} устанавливает значение переменной @code{showtime}.
37 Файл @code{maxima-init.mac} может содержать любые присваивания и другие команды Maxima.
39 @opencatbox{Категории:}
40 @category{Управление сессией}
43 @node Прерывания, Функции и переменные времени выполнения, Введение в окружение времени выполнения, Окружение времени выполнения
46 Пользователь может остановить длительное вычисление, нажав на ^C (Control-C).
47 По умолчанию, текущее вычисление прекращается и выводится
48 новое приглашение. Невозможно возобновить прерванные вычисления.
50 Если Lisp переменная @code{*debugger-hook*} установлена равной @code{nil}
54 :lisp (setq *debugger-hook* nil)
58 то после получения ^C, Maxima запускает Lisp отладчик,
59 и пользователь может исследовать Lisp окружение.
60 Остановленное вычисление может быть продолжено вводом
61 команды @code{continue} в Lisp отладчике .
62 Способы возврата в Maxima из Lisp отладчика, другие кроме
63 продолжение вычисления до его завершения, различны для разных
66 В системах типа Unix нажатие ^Z (Сontrol-Z) вызывает полную приостановку
67 работы Maxima с возвращением управления в командную строку.
68 Команда @code{fg} вызывает возобновление работы остановленной Maxima
69 с точки, на которой она была остановлена.
71 @c end concepts Runtime Environment
72 @node Функции и переменные времени выполнения, , Прерывания, Окружение времени выполнения
73 @section Функции и переменные времени выполнения
75 @c NEEDS EXPANSION AND CLARIFICATION
76 @defvr {Декларация} feature
77 Maxima понимает два различных типа свойств: системные свойства и свойства,
78 относящиеся к математическим выражениям.
79 См. @code{status} по поводу системных свойств.
80 См. @code{features} и @code{featurep} по поводу математических свойств.
81 @c PROPERTIES, DECLARATIONS FALL UNDER THIS HEADING AS WELL
84 @code{feature} само по себе не является именем функции или переменной.
86 @opencatbox{Категории:}
87 @category{Работа в консоли}
91 @c NEEDS CLARIFICATION, ESPECIALLY WRT THE EXTENT OF THE FEATURE SYSTEM
92 @c (I.E. WHAT KINDS OF THINGS ARE FEATURES ACCORDING TO featurep)
93 @deffn {Функция} featurep (@var{a}, @var{f})
94 Пытается определить имеет ли объект @var{a} свойство @var{f}, используя факты,
95 находящиеся в текущей базе данных. Если да, то возвращается @code{true},
96 иначе возвращается @code{false}.
98 Отметим, что @code{featurep} возвращает @code{false} если даже ни @var{f},
99 ни отрицание @var{f} не могут быть установлены.
101 Функция @code{featurep} вычисляет свои аргументы.
103 См. также @code{declare} и @code{features}.
106 (%i1) declare (j, even)$
107 (%i2) featurep (j, integer);
111 @opencatbox{Категории:}
112 @category{Функции предикаты}
113 @category{Факты и выводы}
117 @defvr {Системная переменная} maxima_tempdir
119 Переменная @code{maxima_tempdir} обозначает директорию, в которой Maxima создает некоторые
120 временные файлы. Например, временные файлы с данными для графиков
121 создаются в @code{maxima_tempdir}.
123 Начальное значение @code{maxima_tempdir} является домашней директорией пользователя,
124 если Maxima может ее определить. В противном случае Maxima делает догадку о расположении
125 подходящей директории.
127 Переменной @code{maxima_tempdir} можно присвоить строку с именем директории.
129 @opencatbox{Категории:}
130 @category{Глобальные переменные}
134 @defvr {Системная переменная} maxima_userdir
136 Переменная @code{maxima_userdir} обозначает директорию, в которой Maxima ищет Maxima и Lisp файлы.
137 (Maxima ищет файлы и в некоторых других директориях. Полный список определяется переменными @code{file_search_maxima}
138 и @code{file_search_lisp}.)
140 Начальное значение @code{maxima_userdir} является поддиректорией домашней директории
141 пользователя, если Maxima может определить последнюю. В противном случае Maxima
142 делает догадку о расположении подходящей директории.
144 Переменной @code{maxima_userdir} можно присвоить строку с именем директории.
145 Однако, присваивание нового значения @code{maxima_userdir} не меняет автоматически
146 @code{file_search_maxima} и @code{file_search_lisp}.
147 Значение этих переменных нужно менять отдельно.
149 @opencatbox{Категории:}
150 @category{Глобальные переменные}
154 @deffn {Функция} room ()
155 @deffnx {Функция} room (true)
156 @deffnx {Функция} room (false)
157 Выводит информацию о состоянии использования памяти и стека в Maxima.
158 Команда @code{room} вызывает одноименную Lisp функцию.
162 @code{room ()} выводит описание среднего уровня детализации.
164 @code{room (true)} выводит подробное описание.
166 @code{room (false)} выводит краткое описание.
169 @opencatbox{Категории:}
174 @deffn {Функция} status (feature)
175 @deffnx {Функция} status (feature, @var{putative_feature})
176 @deffnx {Функция} status (status)
177 Возвращает информацию о наличии или отсутствии определенных
178 системно-зависимых свойств.
182 @code{status (feature)} возвращает список системных свойств.
183 Что включает версию Lisp, тип операционной системы и т.д.
184 Этот список может варьироваться от одной версии Lisp к другой.
185 @item @code{status (feature, @var{putative_feature})} возвращает @code{true},
186 если @var{putative_feature} присутствует в списке, возвращаемом @code{status (feature)},
187 и @code{false} в противном случае.
188 Функция @code{status} не вычисляет свои аргументы @var{putative_feature}.
189 Оператор кавычка-кавычка @code{'@w{}'} может быть использован для их вычисления.
190 Свойства, содержащие в именах специальные символы, такие как тире, могут задаваться
191 в форме строки. Например,@code{status (feature, "ansi-cl")}.
193 @code{status (status)} возвращает двухэлементный список @code{[feature, status]}.
194 @code{feature} и @code{status} являются двумя аргументами, принимаемыми функцией @code{status}.
195 Не ясно, имеет ли этот список какое-либо иное значение.
198 Переменная @code{features} содержит список свойств, применимых к математическим
199 выражениям. См. @code{features} и @code{featurep} по поводу дополнительной информации.
201 @opencatbox{Категории:}
202 @category{Программирование}
206 @deffn {Функция} time (%o1, %o2, %o3, ...)
207 Возвращает список времен, в секундах, вычисления результирующих выражений @code{%o1}, @code{%o2}, @code{%o3}, ... .
208 Время является внутренним временем вычисления Maxima, а не временем, прошедшим по реальным часам.
209 Функция @code{time} применима только к меткам результирующих выражений, для других переменных
210 @code{time} возвращает @code{unknown}.
212 Установка @code{showtime: true} заставляет Maxima печатать внутренее время вычисления и время по реальным
213 часам для каждого результата.
215 @opencatbox{Категории:}
220 @deffn {Функция} timedate ()
221 Возвращает строку, содержащую текущее время и дату.
222 Строка имеет формат @code{HH:MM:SS Day, mm/dd/yyyy (GMT-n)}, где поля есть
223 часы, минуты, секунды, день недели, месяц, день месяца, год и сдвиг часового пояса от GMT
224 (Стандартное время по Гринвичу).
230 @c print ("timedate reports current time", d)$
233 (%i1) d: timedate ();
234 (%o1) 08:05:09 Wed, 11/02/2005 (GMT-7)
235 (%i2) print ("timedate reports current time", d)$
236 timedate reports current time 08:05:09 Wed, 11/02/2005 (GMT-7)
239 @opencatbox{Категории:}
240 @category{Функции времени и даты}
244 @deffn {Функция} absolute_real_time ()
246 Возвращает число секунд, истекших с полуночи 1 января 1900 года по Универсальному Координированному Времени (UTC).
247 Значение является целым числом.
249 См. также @code{elapsed_real_time} и @code{elapsed_run_time}.
254 @c absolute_real_time ();
255 @c 1900 + absolute_real_time () / (365.25 * 24 * 3600);
258 (%i1) absolute_real_time ();
260 (%i2) 1900 + absolute_real_time () / (365.25 * 24 * 3600);
261 (%o2) 2007.265612087104
264 @opencatbox{Категории:}
265 @category{Функции времени и даты}
269 @deffn {Функция} elapsed_real_time ()
271 Возвращает число секунд (включая доли секунды), истекших с последнего запуска или перезапуска Maxima
273 Значение является числом с плавающей точкой.
275 См. также @code{absolute_real_time} и @code{elapsed_run_time}.
280 @c elapsed_real_time ();
281 @c expand ((a + b)^500)$
282 @c elapsed_real_time ();
285 (%i1) elapsed_real_time ();
287 (%i2) expand ((a + b)^500)$
288 (%i3) elapsed_real_time ();
292 @opencatbox{Категории:}
293 @category{Функции времени и даты}
297 @deffn {Функция} elapsed_run_time ()
299 Возвращает число секунд (включая доли секунды), истекших с последнего запуска или перезапуска Maxima
300 по внутренним часам Maxima.
301 Значение является числом с плавающей точкой.
303 См. также @code{absolute_real_time} и @code{elapsed_real_time}.
308 @c elapsed_run_time ();
309 @c expand ((a + b)^500)$
310 @c elapsed_run_time ();
313 (%i1) elapsed_run_time ();
315 (%i2) expand ((a + b)^500)$
316 (%i3) elapsed_run_time ();
320 @opencatbox{Категории:}
321 @category{Функции времени и даты}