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 не проверяются.

Примеры

Пример 1

Следующая функция содержит много ошибок, некоторые из которых были на самом деле законны в предыдущих версиях 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]

Параметры

object

Процедура, функциональная среда или область, чтобы проверять, идентификатор All или список объектов

infolevel

Положительное целое число, которое определяет полноту сообщений

Опции

All

Включает все известные опции

Global

Сообщите о неизвестных глобальных идентификаторах

Local

Сообщите о неиспользуемых локальных переменных

Это переменные, которые были объявлены local, но никогда не использовались в процедуре.

Localf

Сообщите о неиспользуемых локальных переменных и неиспользованных формальных параметрах

То же самое как Local, но та же проверка дополнительно выполняется для формальных параметров процедуры. Те - имена аргумента, как дали в определении процедуры.

Assign

Сообщите о присвоениях на формальные параметры процедур

Поскольку формальный параметр будет перезаписан, те присвоения могли указать на программную ошибку (однако, не обязательный).

Level

О приложении level к локальным переменным сообщают. Начиная с MuPAD 2.0 локальные переменные просто заменяются их значениями на оценке и вызове, level на них не имеет никакого эффекта.

Domain

Сообщите неопределенные записи областей (использует слот "undefinedEntries"),

Interface

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

Environment

Информация о присвоениях на переменные окружения MuPAD распечатана. Эти присвоения могли изменить глобальное поведение MuPAD, если изменение не отменено (предпочтительно использование save, чтобы отловить состояние ошибки).

Protect

Информация о присвоениях на защищенные переменные MuPAD распечатана.

Save

Сообщение о глобальном идентификаторе подавлено, когда проверенный объект является процедурой, и идентификатор сохранен с опцией, “сохраняют”.

Special

Информация о некоторых особых случаях распечатана. В настоящее время единственный реализованный особый случай является присвоениями на HISTORY.

Escape

prog::check распечатывает предупреждения о процедурах, которые могут потребовать опции escape.

Возвращаемые значения

prog::check возвращает пустой объект null(). Выходные сигналы распечатаны на экране.

Смотрите также

Функции MuPAD

Для просмотра документации необходимо авторизоваться на сайте