Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
ob:v5 [2022/08/18 16:58] dimik [Команды] |
ob:v5 [2022/08/18 17:10] dimik |
||
---|---|---|---|
Строка 47: | Строка 47: | ||
При нажатии на команду M.P, модуль M ищется в хранилище и если он найден то загружается в основное хранилище. Затем ищется его процедура P и выполняется. Список загруженных модулей может быть сформирован командой System.ShowModules, | При нажатии на команду M.P, модуль M ищется в хранилище и если он найден то загружается в основное хранилище. Затем ищется его процедура P и выполняется. Список загруженных модулей может быть сформирован командой System.ShowModules, | ||
- | '' | + | {{:ob:img4.png}} |
- | + | ||
- | IMPORT Texts, Oberon; | + | |
- | + | ||
- | VAR W: Texts.Writer; | + | |
- | + | ||
- | PROCEDURE P0*; | + | |
- | VAR sum: INTEGER; | + | После успешной компиляции (ORP.Compile @), команда: M0.P0 2 3 5 7 11 ~ приводит к выводу этих чисел и их суммы в стандартный системный журнал System.Log. |
- | S: Texts.Scanner; | ||
- | BEGIN sum := 0; Texts.OpenScanner(S, Oberon.Par.text, Oberon.Par.pos); Texts.Scan(S); WHILE S.class = Texts.Int DO Texts.WriteInt(W, S.i, 6); sum := sum + S.i; Texts.Scan(S) END ; Texts.Write(W, sum, 8); Texts.WriteLn(W); Texts.Append(Oberon.Log, W.buf) END P0; BEGIN Texts.OpenWriter(W) END M0.'' | + | ==== Ядро системы Oberon ==== |
+ | Ядро системы состоит из цикла, который непрерывно отслеживает появление команды. Команда идентифицируется, управление передается, | ||
+ | |||
+ | {{: |