1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
<?xml version="1.0" encoding="UTF-8"?>
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="comp" xml:lang="ru">
<refnamediv>
<refname>comp</refname>
<refpurpose>компиляция scilab-функции</refpurpose>
</refnamediv>
<refsynopsisdiv>
<title>Последовательность вызова</title>
<synopsis>comp(function [,opt])</synopsis>
</refsynopsisdiv>
<refsection>
<title>Аргументы</title>
<variablelist>
<varlistentry>
<term>function</term>
<listitem>
<para>некомпилированная scilab-функция (тип 11)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>opt</term>
<listitem>
<para>флаг со значениями 0 (по умолчанию), 1 или 2</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Описание</title>
<para>
<literal>comp(function)</literal> компилирует функцию
<literal>function</literal>. Компилированные и интерпретируемые функции
эквивалентны, но обычно компилированные функции гораздо быстрее. Функции,
предоставленные в стандартных библиотеках, являются компилированными.
</para>
<para>
Определение в реальном времени, как и краткий синтаксис команд
<literal>exec</literal> и <literal>deff</literal> генерирует компилированные
функции. Так что <literal>comp</literal> используется в исключительных случаях.
Чтобы сделать некомпилированные функции нужно использовать <link linkend="exec">exec</link>
или <link linkend="deff">deff</link> с опцией <literal>"n"</literal>.
</para>
<para>
Значение <literal>opt==2</literal> приводит к тому, что функция компилируется "для
профилирования". Заметьте, что сейчас можно добавлять инструкции профилирования после компиляции, используя функцию <link linkend="add_profiling">add_profiling</link>.
</para>
<para>
Устаревшая опция <literal>opt==1</literal> была специально в целях анализа кода, а сейчас
игнорируется, т. е. обрабатывается как <literal>opt==0</literal>.
</para>
<para>
Примечание: компиляция работает "на месте", т.е. исходная функция модифицируется, но никакого
нового объекта не создаётся.
</para>
</refsection>
<refsection role="see also">
<title>Смотрите также</title>
<simplelist type="inline">
<member>
<link linkend="type">type</link>
</member>
<member>
<link linkend="deff">deff</link>
</member>
<member>
<link linkend="exec">exec</link>
</member>
<member>
<link linkend="function">function</link>
</member>
<member>
<link linkend="add_profiling">add_profiling</link>
</member>
<member>
<link linkend="profile">profile</link>
</member>
</simplelist>
</refsection>
</refentry>
|