Специальная математика. Соловьев А.Е. - 91 стр.

UptoLike

Составители: 

Рубрика: 

шаблон действие
Шаблоны :
x символ ‘x’
. любой символ кроме ‘\n
[abj-oZ] любой из ‘a’,’b’,’Z’ и диапазона от ‘j’ до ‘o’
r* любое количество выражений “r
r+ одно или более выражений “r”
r|s или “r”, или “s”
(r|s)* любое количество выражений “r” или “s”
<<EOF>> конец файла
Пример :
int num_lint=0;
digit [0-9]
%%
{digit}+”L” { num_lint ++;printf( “longconst\n”); }
%%
main()
{
yylex();
printf( “Number of long int is %d\n”,num_lint);
}
7.19. Область действия и передача параметров
Существует шесть основных способа передачи параметров :
1. by value (значением). В вызываемой процедуре выделяется место (память) для
параметров и туда помещаются их значения.
Это самый аккуратный способ. Его еще можно назвать самым математическим Изменения,
которые претерпевает переданный параметр, ни как не повлияют на его значение в
вызывающей программе. Это сродни тому, что от математике мы вправе ожидать естественного порядка
вещей: вычисление функции не приводит к изменению значения аргумента.
2. by result (результатом). Память для хранения значения параметра выделяется в
вызывающей программе. Это достаточно экзотический способ. Он может иметь место,
например, при вызове программы генерации случайных чисел
3. by value-result (значением-результатом). Сочетание первых двух способов.
4. by reference (ссылкой). Память выделяется в вызывающей программе, а в качестве
параметра передается ссылка (указатель) на эту память. Это наиболее часто используемый
способ.
5. by name (именем) . При этом способе производится текстовая замена формального
параметра фактически переданным. Этот способ прежде всего используется в различных
претрансляторах и макроассемблерах.
6. by stack (стеком) Это "неклассический" способ, который получил распространение в
связи с появлением "нестандартных" языков типа Форт.
Весьма условный (позаимствованный) пример. Их обычно приводят, чтобы поразить
воображение.
Пример :
prog P(x); - фрагмент вызванной процедуры.
B[1]:=1; I:=1;
— 91 —
 шаблон действие

Шаблоны :
x символ ‘x’
. любой символ кроме ‘\n’
[abj-oZ] любой из ‘a’,’b’,’Z’ и диапазона от ‘j’ до ‘o’
r* любое количество выражений “r”
r+ одно или более выражений “r”
r|s или “r”, или “s”
(r|s)* любое количество выражений “r” или “s”
<> конец файла

Пример :

int num_lint=0;
digit [0-9]
%%
{digit}+”L” { num_lint ++;printf( “longconst\n”); }
%%
main()
{
yylex();
printf( “Number of long int is %d\n”,num_lint);
}

                   7.19. Область действия и передача параметров

Существует шесть основных способа передачи параметров :
1. by value (значением). В вызываемой процедуре выделяется место (память) для
   параметров и туда помещаются их значения.
Это самый аккуратный способ. Его еще можно назвать самым математическим Изменения,
которые претерпевает переданный параметр, ни как не повлияют на его значение в
вызывающей программе. Это сродни тому, что от математике мы вправе ожидать естественного порядка
вещей: вычисление функции не приводит к изменению значения аргумента.
2. by result (результатом). Память для хранения значения параметра выделяется в
   вызывающей программе. Это достаточно экзотический способ. Он может иметь место,
   например, при вызове программы генерации случайных чисел
3. by value-result (значением-результатом). Сочетание первых двух способов.
4. by reference (ссылкой). Память выделяется в вызывающей программе, а в качестве
   параметра передается ссылка (указатель) на эту память. Это наиболее часто используемый
   способ.
5. by name (именем) . При этом способе производится текстовая замена формального
   параметра фактически переданным. Этот способ прежде всего используется в различных
   претрансляторах и макроассемблерах.
6. by stack (стеком) Это "неклассический" способ, который получил распространение в
   связи с появлением "нестандартных" языков типа Форт.

Весьма условный (позаимствованный) пример. Их обычно приводят, чтобы поразить
  воображение.

  Пример :
  prog                P(x); - фрагмент вызванной процедуры.
  B[1]:=1;           I:=1;
                                              — 91 —