prog
:: check
Проверка объектов
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
prog::check(object
, <infolevel
>, options
)
Вызов prog::check(object)
проверяет объект object
MuPAD®. object
может быть процедурой, функциональной средой или областью. Можно также дать список таких объектов.
Если All
дан как первый параметр, все заданные процедуры, функциональные среды и области проверяются (см. anames
).
infolevel
определяет объем информации, данный при проверке. Следующие значения полезны:
1
суммирование количества предупреждений на проверенный объект, если по крайней мере одно предупреждение происходит (значение по умолчанию)
2
как 1, но короткое сообщение распечатан, даже если никакое предупреждение не было произведено
3
сводные данные предупреждений на проверенный объект
5
отображения каждый проверенный объект, сопровождаемый отдельными предупреждениями, соблюдавшими сводными данными и количеством предупреждений, если таковые имеются.
10 … 15
дополнительные выходные параметры (для отладки/информации)
options
может быть любой из описанных опций.
С опцией All
все проверяются. Без опций набор используется {Domain, Global, Interface, Level, Local, Protect, Save}
.
Аргументы выражений hold
не проверяются.
Следующая функция содержит много ошибок, некоторые из которых были на самом деле законны в предыдущих версиях MuPAD.
Строки 1
и 2
содержат объявления локальных переменных. В строке 4
используется необъявленная (глобальная) переменная g
. 7
строки применяет level
к локальной переменной (вызов просто возвращает значение X
в MuPAD 2.0). Строка 10
содержит присвоение на формальный параметр. Этот параметр будет перезаписан и его старое потерянное значение:
f:= proc(X, Y) // 1 Local local a, b; // 2 Local begin // 3 g:= proc(X) // 4 Global option hold; // 5 begin // 6 a:= level(X, 2); // 7 Level a:= a + X // 8 end_proc; // 9 Y:= g(Y); // 10 Assign, Global end_proc: prog::check(f, 3)
Critical usage of 'level' on local variable ' [f]
Function 'level' applied to variables: {X} in [f, proc in 'f']
Global idents: {g} in [f]
Unused local variables: {b} in [f]
Warnings: 3 [f]
Только ищите глобальные переменные, но дайте больше сообщений:
prog::check(f, 5, Global)
Checking f (DOM_PROC)
Global variable 'g' in [f]
Global variable 'g' in [f]
Global idents: {g} in [f]
Warnings: 1 [f]
Теперь проверяйте все:
prog::check(f, 5, All)
Checking f (DOM_PROC)
Global variable 'g' in [f]
Critical usage of 'level' on local variable ' [f]
Function 'level' applied to variables: {X} in [f, proc in 'f']
Procedure environment of [f] used by [f, proc in 'f']
Assignment to formal parameter 'Y' in [f].
Global variable 'g' in [f]
Global idents: {g} in [f]
Unused local variables: {b} in [f]
Unused formal parameters: {X} in [f]
Assignments to formal parameters: {Y} in [f]
Warnings: 8 [f]
Глобальные переменные, объявленные с опцией “сохранение”, позволены:
f:= proc(X) // 1 Local save g; // 2 Save begin // 3 g:= X end_proc: prog::check(f, 2, Global, Save)
Warnings: 0 [f]
|
Процедура, функциональная среда или область, чтобы проверять, идентификатор |
|
Положительное целое число, которое определяет полноту сообщений |
|
Включает все известные опции |
|
Сообщите о неизвестных глобальных идентификаторах |
|
Сообщите о неиспользуемых локальных переменных Это переменные, которые были объявлены |
|
Сообщите о неиспользуемых локальных переменных и неиспользованных формальных параметрах То же самое как |
|
Сообщите о присвоениях на формальные параметры процедур Поскольку формальный параметр будет перезаписан, те присвоения могли указать на программную ошибку (однако, не обязательный). |
|
О приложении |
|
Сообщите неопределенные записи областей (использует слот |
|
Информация о неопределенных записях доменного интерфейса распечатана, т.е. записи в доменном интерфейсе, которые не заданы как записи области. |
|
Информация о присвоениях на переменные окружения MuPAD распечатана. Эти присвоения могли изменить глобальное поведение MuPAD, если изменение не отменено (предпочтительно использование |
|
Информация о присвоениях на защищенные переменные MuPAD распечатана. |
|
Сообщение о глобальном идентификаторе подавлено, когда проверенный объект является процедурой, и идентификатор сохранен с опцией, “сохраняют”. |
|
Информация о некоторых особых случаях распечатана. В настоящее время единственный реализованный особый случай является присвоениями на |
|
|
prog::check
возвращает пустой объект null()
. Выходные сигналы распечатаны на экране.