Языки программирования
Язык программирования — формальный язык, предназначенный для записи компьютерных программ. Он определяет набор лексических, синтаксических и семантических правил, которые определяют внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.
Каждый язык программирования имеет свой синтаксис (правила построения инструкций) и семантику (значение этих инструкций).
Некоторые виды языков программирования:
Языки низкого уровня — максимально приближены к аппаратному обеспечению компьютера. Примеры — машинный код, ассемблер.
Языки высокого уровня — максимально приближены к человеческому мышлению. Примеры — Python, Java, JavaScript.
Языки сверхвысокого уровня — специализированные языки для конкретных областей. Например, SQL — для работы с реляционными базами данных, R — для статистического анализа и визуализации данных, MATLAB — для математических вычислений и моделирования.
Компилируемые и интерпретируемые. Компилируемые языки переводят весь исходный код в машинные инструкции до запуска программы, интерпретируемые — выполняют код построчно во время запуска программы — без предварительной компиляции.
Языки со статической и динамической типизацией. Статическая типизация означает, что разработчик должен явно указать тип каждой переменной ещё на этапе написания кода, динамическая — позволяет не указывать тип переменной явно — его определяют во время выполнения.
-
Борьба с утечками ресурсов и переполняющимися буферами
Проблема в том, что в произвольной точке программы очень непросто сказать: какие ресурсы уже выделены, а какие еще нет и что именно нужно освобождать! Ну ведь не поддерживать же ради этого транзакции?! Разумеется, нет. Проблема имеет весьма простое и элегантное решение, основанное на том, что Стандарт допускает освобождение нулевого указателя
Переполняющиеся буфера
Листинг 1 программа, демонстрируя невозможность определения размера блока по указателю
Листинг2 результат работы программы, определяющий размер блока по указателю
Листинг3 строка, реализованная в виде списка (простейшая реализация)
Листинг4 строка, реализованная в виде списка (продвинутая реализация)
Утечки ресурсов
Листинг 5 фрагмент типичной программы, страдающей утечками ресурсов
Листинг6 реконструированный вариант программы, свободный от утечек
Листинг7 стековые массивы с переменным размером, появившиеся в Стандарте C99
Листинг8 дизассемблерный фрагмент
Листинг9 макросы для динамического
Листинг10 исходный текст программы, использующий динамические стековые массивы
Листинг11 исходный код макроса
Листинг12 демонстрационный пример программы, использующей макрос auto_alloc
Заключение
-
Что такое DOM?
Сначала Java-код импортирует необходимые классы, а затем создает приложение OrderProcessor. Примеры в этом учебнике рассматривают один файл, так что для краткости приложение содержит прямую ссылку на него
Что такое DOM?
Инструменты
DOM как структура
Карта DOM
DOM как API
Определение доступности свойств
Базовый XML-файл
Создание иерархии
Различие между элементами и узлами
Базовые типы узлов: документ, элемент, атрибут и текст
Менее распространенные типы узлов: CDATA, комментарии, инструкции обработки и фрагменты документа
Что такое пространство имен?
Создание пространства имен
Определение пространств имен
Трехшаговый процесс
Базовое приложение
Установки парсера
Исключения парсера
Получение корневого элемента
Получение потомка элемента
Использование getFirstChild() и getNextSibling()
Рекурсия через многие уровни потомков
Включение атрибутов
Изменение значения в узле
Добавление узлов: подготовка данных
Добавление узлов: добавление узлов в документ
Удаление узла
Замена узла
Создание и установка атрибутов
Удаление атрибута
Подготовка данных
Создание XML-файла
Тождественные преобразования
Резюме
Для обучения
Для получения продуктов и технологий
Об авторе
-
Документация по Clarion
Clarion Professional Developer интегрированная среда для написания приложений для обработки данных и систем управления информацией для микрокомпьютеров. Язык программирования кларион основа этой среды. В этом руководстве, язык четко расписан по модульному принципу. Вам стоит заглядывать в эту книгу, когда, особенно по началу, вы хотите знать точный синтаксис, требуемый для любого описания, оператора, или функции.
Хорошо структурируемые примеры для каждого пункта были особым предметом нашей заботы. Также, много информации в этой книге сведено для мгновенного доступа либо с Руководством Быстрой Ссылки по Кларион, либо со встроенной системой помощи.
Формат описания элементов языка
Условные обозначения и символы
Документация по Clarion
Метки описаний и операторов
Завершение структуры
Зарезервированные слова
Специальные символы
Глобальные, локальные, статические, и динамические данные
PROGRAM (Объявить программу)
MEMBER (Идентифицирует принадлежность модуля-члена)
MAP (Обьявить прототипы ПРОЦЕДУР и-или ФУНКЦИЙ)
MODULE Объявление исходного модуля-члена.
МОДУЛЬ (указывает файл с модулем-ЧЛЕНОМ)
Прототипы ПРОЦЕДУР и ФУHКЦИЙ
PROCEDURE (Объявить процедуру)
FUNCTION (Объявить функцию)
CODE (Начать выполнимые операторы)
ROUTINE (Обьявить локальную подпрограмму)
END (Завершить структуру)
ДИРЕКТИВЫ КОМПИЛЯТОРА
BEGIN (Определить структуру кода)
COMPILE (Определить источник который нужно компилировать)
EJECT (Начать новую страницу листинга)
EMBED (Вложенная секция исходного кода)
INCLUDE (Компилировать код из другого файла)
LIST (Помещает включенный исходный код в листинг компилятора)
OMIT (Указывает не подлежащий компиляции текст)
SECTION (Определить секцию исходного кода)
SUBTITLE (Печатать подзаголовок МОДУЛЯ)
TITLE (Печатает заголовок МОДУЛЯ)
Документация по Clarion
BYTE (однобайтное целое без знака)
SHORT (двухбайтное целое со знаком)
USHORT (two-byte unsigned integer)
LONG (четырехбайтное целое со знаком)
ULONG (четырехбайтное целое без знака)
SREAL (четырехбайтное вещественное со знаком)
REAL (восьмибайтное вещественное со знаком)
DECIMAL (упакованное десятичное число фиксированной длины со
знаком)
PDECIMAL (то же, что и DECIMAL)
STRING (строка фиксированной длины)
CSTRING (строка фиксированной длины, завершающаяся нулем)
PSTRING (строка со встроенным байтом-счетчиком длины)
DATE (четырехбайтная дата)
TIME (четырехбайтное время)
GROUP (составная структура данных)
LIKE (определяемые пользователем типы данных)
НЕЯВНЫЕ ПЕРЕМЕННЫЕ
ЭЛЕМЕНТЫ ШАБЛОНОВ
Шаблоны научной нотации
PRE (префикс метки)
DIM (размерность массива)
EXTERNAL (переменная описана извне)
NAME (указать внешнее имя)
OVER (разделяет место в памяти)
EQUATE (назначить метку)
SIZE (размер памяти в байтах)
Документация по Clarion
Выражения
Числовые константы
Числовые выражения
Арифметические операторы
Строковые константы
Оператор конкатенации (соединения)
Строковые выражения
Логические операторы
Логические выражения
Документация по Clarion
Простые операторы присвоения
Операторы присвоения-операции
CLEAR (очистить переменную)
ПРАВИЛА ПРЕОБРАЗОВАНИЯ ДАННЫХ
Документация по Clarion
Последовательность выполнения операторов
Вызовы процедур
CASE (структура условного выполнения)
EXECUTE (statement selection structure)
IF (структура условного выполнения)
LOOP (итерационная структура, цикл)
BREAK (немедленно выйти из LOOP)
CHAIN (выполнить другую программу)
CYCLE (перейти в начало цикла LOOP)
DO (вызвать подпрограмму (ROUTINE)
EXIT (выйти из подпрограммы (ROUTINE)
GOTO (перейти к метке)
HALT (выход в DOS)
NOTIFY (обработка критических ошибок)
RESTART (перезапустить программу)
RETURN (вернуться в точку вызова)
RUN (выполнить команду ДОС)
Передаваемые ошибки:
RUNSMALL (выполнить команду)
SHUTDOWN (взвести процедуру завершения)
STOP (заморозить выполнение программы)
Документация по Clarion
ГЛАВА 7 - ДОСТУП К ЭКРАНУ И КЛАВИАТУРЕ
Коды цветовых стилей (видео атрибуты)
SCROLL (прокрутить прямоугольную область экрана)
SETBLINK (разрешить мигание)
SETCOLOR (установить видеоатрибуты)
SETCURSOR (включить курсор)
SETGRAPHIC (установить графический режим)
SETMOUSE (позиционирование курсора мышки)
SETNOBLINK (запретить мигание)
SETTEXT (установить размер экрана в текстовом режиме)
SHOW (показать на экране)
TYPE (вывести строку на экран)
BACKCOLOR (возвращает цвет фона)
COLOR (возвращает код цветового стиля)
FORECOLOR (возвращает цвет переднего плана)
GRAPHIC (возвращает текущий видеорежим)
LOOK (считать символ(ы) с экрана)
MAKECOLOR (возвращает код цветового стиля)
MOUSECOL (X-координата мышки)
MOUSEROW (Y-координата мышки)
ALIAS (установить альтернативный код клавиши)
ASK (получить один символ)
PRESS (поместить код в буфер)
SETKEYCODE (вернуть код клавиши)
ENTRY (принять ввод с клавиатуры)
KEYBOARD (возвращает ожидающее нажатие на клавишу)
KEYCODE (возвращает код клавиши завершения поля)
Документация по Clarion
ГЛАВА 8 - SCREEN-СТРУКТУРЫ
Что такое Screen
Equate-метки полей
Equate-метки меню
SCREEN (описывает screen-структуру)
AT (задает координаты экрана)
CENTER (центрирование на физическом экране)
CUA (объявляет пользовательский интерфейс типа SAA/CUA)
EXPAND (задает размножаемую строку)
GRAPHIC (задает графический режим)
SHADOW (автоматическая тень под окном)
ZOOM, FADE, WIPE, FALL (методы открытия экрана)
ROW (задает строку)
COL (задает столбец)
BUTTON (поле-кнопка)
CHECK (поле отметки (чекбокс)
ENTRY (Поле для ввода)
IMAGE (поле-рисунок)
LIST (описывает список)
OPTION (описывает меню опций)
PAINT (закраска части экрана)
PAUSE (поле ожидания нажатия на клавишу)
POINT (указатель структуры REPEAT)
PROMPT (строка подсказки для следующего поля)
RADIO (поле радио-кнопка)
REPEAT (структура-посторение)
STRING (экранная переменная - строка)
TEXT (область для ввода текста)
ALRT (установить клавишу(и) завершения поля)
CAP (Первые буквы слов делать заглавными)
COLOR (задать цвета показа)
COLS (задает столбцы в LIST-структуре)
ESC (куда перейти при нажатии ESC)
EVERY (установить промежуток для REPEAT)
FILL (переменная, получающая значение из листбокса)
FROM (очередь для просмотра через LIST)
FIX (заголовки листбокса)
HIDE (скрыть содержимое поля)
HLP (идентификатор окна помощи для данного поля)
HSCROLL, VSCROLL, HVSCROLL (линейки прокрутки для LIST)
IMM (немедленное исполнение)
INDEX (индексная переменная для REPEAT)
INS (ввод - в режиме вставки)
LFT (выравнивание влево)
MAX (переменная-счетчик столбцов в REPEAT)
MSG (вывод сообщения на экран)
NAME (файл с графикой для показа)
OVR (ввод - в режиме замены)
REQ (поле не может быть нулевым или пустым)
REUSE (использовать ранее установленную палитру)
SKIP (пропустить это поле)
TRN (прозрачное изображение)
UPR (ввод преобразовывать в верхний регистр)
USE (связать с полем переменную или метку)
PULLDOWN (структура "выпадающее меню")
SINGLE, DOUBLE, FULL, HALF (виды рамок для меню)
LOCAL (позиция, в которой открывается PULLDOWN)
ITEM (элемент выпадающего меню)
MENU (подменю в выпадающем меню)
KEY (клавиша быстрого выбора)
RIGHT (позиция для MENU)
TOGGLE (элемент-переключатель типа ВКЛ/ВЫКЛ)
Документация по Clarion
ГЛАВА 9 - Команды обработки экранов
ACCEPT (обработчик полей экрана)
ALERT (установка клавиши завершения поля)
BEEP (звуковой сигнал динамиком)
CLOSE (закрыть текущий экран)
DISABLE (запретить выбор поля и затемнить его)
DISPLAY (вывести USE-переменные на экран)
ENABLE (разрешить выбор затемненного ранее поля)
ERASE (очистить поле(я) на экране и его(их) USE-переменную(ые))
GETSTYLES (считать Коды Цветовых Стилей из файла)
HELP (доступ к окну подсказки)
IDLE (периодически вызываемая процедура)
LOADSYMBOLS (загрузка псевдографики)
OPEN (открыть экран для обработки)
SELECT (выбрать поле для обработки)
SETAREA (установить размер виртуального экрана)
SETMSG (задать строку сообщений экрана)
SETSTYLES (установить Коды Цветовых Стилей)
SHOWIMAGE (показать .PCX или .GIF)
UPDATE (записать данные с экрана в USE-переменные)
USESYMBOLS (графические мышка, кнопки и рамочки)
CHOICE (относительная позиция элемента)
COL (номер столбца)
COLS (число столбцов)
CONTENTS (содержимое USE-переменной)
FIELD (последнее завершенное поле)
FIELDS (число полей на экране)
REFER (было обращение к полю или нет)
ROW (номер строки)
ROWS (число строк)
SELECTED (выбранное для обработки поле)
STYLES (возвращает внутренний массив Цветовых Стилей)
Документация по Clarion
ГЛАВА 10 - Отчеты
REPORT (описывает структуру отчета)
APPEND (дописывает выводимое в конец файла)
DEVICE (задает устройство, на которое вывести отчет)
LENGTH (число строк на странице)
LINE (переменная - счетчик строк)
PAGE (переменная - счетчик страниц)
PRINTER (логическая поддержка принтера)
WIDTH (максимальная ширина страницы)
HEADER (заголовок страницы, верхний колонтитул)
DETAIL(тело отчета)
FOOTER (подножие страницы, нижний колонтитул)
ALLOW (контроль висячей строки)
ALONE (структуру DETAIL печатать без HEADER/FOOTER)
FIXED (структура фиксированной длины)
SEPARATE (промежуток между элементами отчета)
ROW (строка)
COL (столбец)
SUPPRESS (не печатать элемент, если он пустой)
CONTROL (управляющая последовательность для принтера)
STRING (переменная отчета)
TEXT (многострочное поле отчета)
CLIP (отсечь хвостовые пробелы)
LFT, RHT, CENT (методы выравнивания полей)
UPR, LWR, CAP (методы капитализации)
USE (переменная, связанная с полем)
WRAP (разрешить перенос слов)
OPEN (открыть отчет для обработки)
CLOSE (закрыть текущий отчет)
PRINT (напечатать элемент отчета)
ROWS (количество строк)
Переполнение страницы
Шаблоны управляющих кодов принтера
Документация по Clarion
ГЛАВА 11 - Файлы данных
FILE (описание структуры файла данных)
CREATE (разрешает создание файла)
DRIVER (задает тип файла данных)
ENCRYPT (шифровать файл данных)
OWNER (задает пароль для шифрования файла данных)
RECLAIM (использовать место от удаленных записей)
INDEX (описывает статический индекс для файла)
KEY (описывает динамический индекс (ключ) для файла)
MEMO (описывает текстовое поле)
RECORD (описывает структуру записи)
BINARY (MEMO содержит двоичные данные)
DUP (разрешить повторяющиеся значения полей ключа)
NOCASE (KEY или INDEX - НЕ чувствительны к регистру)
OPT (пустые или нулевые ключевые поля отбрасываются)
BUILD (построить ключи и/или индексы для файла)
CLOSE (закрыть файл данных)
COPY (копировать файл данных)
CREATE (создать пустой файл данных)
EMPTY (очистить файл данных)
FLUSH (сбросить буфера ДОС на диск)
LOCK (монопольный доступ к файлу)
OPEN (открыть файл данных)
PACK (физически стереть удаленные записи)
REMOVE (стереть файл данных)
RENAME (переименовать файл данных)
SHARE (открыть файл данных)
STREAM (разрешить буферизацию через ДОС)
UNLOCK (разблокировать заблокированный файл)
ADD (добавить новую запись)
APPEND (добавить новую запись)
DELETE (удалить запись)
GET (считать запись по прямому доступу)
HOLD (монопольный доступ к записи)
NEXT (прочитать следующую запись последовательности)
PREVIOUS (прочитать предыдущую запись последовательности)
PUT (записать запись обратно в файл)
RELEASE (освободить заблокированную запись)
RESET (сброс указателя текущей записи)
SET (инициировать последовательную обработку файла)
SKIP (пропустить записи в последовательности)
BOF (начало файла)
BYTES (размер файла в байтах)
DUPLICATE (проверить на дублирование ключевых полей)
EOF (конец файла)
POINTER (относительный номер записи)
POSITION (номер записи в последовательности)
RECORDS (число записей)
SEND (отправить сообщение файловому драйверу)
COMMIT (завершить успешно проведенную транзакцию)
LOGOUT (начать транзакцию)
ROLLBACK (завершить ошибочную транзакцию)
Документация по Clarion
QUEUE (описывает QUEUE-структуру)
ADD (добавить элемент)
DELETE (удалить элемент)
FREE (удалить очередь)
GET (получить элемент)
PUT (перезаписать элемент)
SORT (отсортировать очередь)
POINTER (указатель на последний элемент)
RECORDS (количество элементов)
Документация по Clarion
ГЛАВА 13 - Вспомогательные процедуры и функции
ABS (абсолютное значение)
INRANGE (попадает ли число в заданный диапазон)
INT (отсекает дробную часть)
LOGE (натуральный логарифм)
LOG10 (десятичный логарифм)
RANDOM (случайное число)
ROUND (округление числа)
SQRT (квадратный корень)
ТРИГОНОМЕТРИЧЕСКИЕ ФУНКЦИИ
SIN (синус)
COS (косинус)
TAN (тангенс)
ASIN (арксинус)
ACOS (арккосинус)
ATAN (арктангенс)
ALL (строка из повторяющихся символов)
CENTER (центрирование строки)
CHR (переводит ASCII-код символа в символ)
CLIP (строка без хвостовых пробелов)
DEFORMAT (удаляет форматирование из числовых строк)
FORMAT (форматирует число по шаблону)
INSTRING (позиция подстроки в строке)
LEFT (строка, выравненная влево)
LEN (длина строки)
LOWER (нижний регистр)
NUMERIC (состоит ли строка только из цифр?)
RIGHT (строка, выравненная вправо)
SUB (возвращает подстроку строки)
UPPER (верхний регистр)
VAL (код символа)
БИТОВЫЕ ФУНКЦИИ
BAND (побитовое И - AND)
BOR (побитовое ИЛИ - OR)
BXOR (Побитовое Исключающее ИЛИ - XOR)
BSHIFT (побитовый сдвиг)
Стандартная дата
Стандартное время
TODAY (системная дата)
SETTODAY (установка системной даты)
CLOCK (системное время)
SETCLOCK (установка системного времени)
DATE (стандартная дата)
DAY (день месяца для заданной даты)
MONTH (месяц для заданной даты)
YEAR (год для заданной даты)
AGE (возраст от базовой даты)
COMMAND (командная строка)
MEMORY (доступная память)
PATH (текущий диск и каталог)
RUNCODE (код завершения ДОС)
SETCOMMAND (установить параметры командной строки)
SETPATH (изменить текущий диск и каталог)
ADDRESS (адрес памяти)
ERROR (сообщение об ошибке)
ERRORCODE (номер кода ошибки)
ERRORFILE (имя ошибочного файла)
IN (читать данные из порта)
MAXIMUM (максимальное значение индекса массива)
NAME (досовское имя файла или устройства)
OMITTED (проверка пропущенных параметров)
OUT (записать данные в порт)
PEEK (read memory address)
POKE (записать в память по адресу)
STATUS (состояние принтера/файла/диска/клавиатуры)
-
Расширяемый язык разметки
Расширяемый язык разметки (The Extensible Markup Language, XML) - подмножество SGML, целиком описанное в представленном документе. Язык должен дать возможность передавать, получать и обрабатывать в Web общие документы SGML так же, как сейчас это можно делать с документами HTML. Язык XML спроектирован так, чтобы упростить реализацию и обеспечить взаимодействие SGML и HTML.
Резюме
Статус этого документа
Приложения
Возникновение языка XML и его задачи
Терминология
Документы
Корректные XML документы
Документ
Символы
Диапазон символов
Общие синтаксические конструкции
Пробельный символ
Имена и лексемы
Литералы
Символьные данные и разметка
Символьные данные
Комментарии
Инструкции обработки
Секции CDATA
Пролог и декларация типа документа
Пролог
Декларация типа документа
Внешний набор
Декларация одиночного документа
Обработка пробельных символов
Обработка концов строк
Идентификация языка
Логические структуры
Элемент
Начальные тэги, конечные тэги и тэги пустых элементов
Начальный тэг
Конечный тэг
Содержимое элементов
Тэги пустых элементов
Декларации типа элемента
Декларация типа элемента
Содержимое элемента
Модели содержимого элемента
Смешанный контент
Декларация смешанного контента
Декларации списка атрибутов
Декларация списка атрибутов
Типы атрибутов
Типы перечислимых атрибутов
Значения атрибутов по умолчанию
Значение атрибута по умолчанию
Нормализация значения атрибута
Условные секции
Условная секция
Физические структуры
Ссылки на символ и сущность
Ссылка на символ
Ссылка на сущность
Декларации сущности
Декларация сущности
Внутренние сущности
Внешние сущности
Декларация внешней сущности
Декларация текста
Корректные разобранные сущности
Корректная внешняя разобранная сущность
Кодирование символов в сущностях
Декларация кодировки
Обработка XML процессором сущностей и ссылок
Не распознается
Включается
Включается при проверке
Запрещен
Включается как строка
Уведомление
Пропускается
Включается как сущность параметра
Построение текста замены для внутренней сущности
Предопределенные сущности
Декларирование нотаций
Декларации нотации
Сущность документа
Проверяющие и непроверяющие процессоры
Использование XML процессоров
Нотация
A.1 Нормативные ссылки
A.2 Остальные ссылки
B Классы символов
Символы
C XML и SGML (Пояснения к спецификации)
D Обработка ссылок на сущность и символ (Пояснения к спецификации)
E Детерминистические модели содержания (Пояснения к спецификации)
F Автоматическое определение кодировки символов (Пояснения к спецификации)
F.1 Определение без внешней информации о кодировке
F.2 Приоритеты при наличии внешней информации о кодировке
G Рабочая группа W3C XML (Пояснения к спецификации)
H Основная группа W3C XML (Пояснения к спецификации)
I Рабочие заметки (Пояснения к спецификации)
J Словарь (Пояснения к спецификации)
-
Самоучитель по Kylix
Для начала, небольшой исторический экскурс в историю языка Pascal.
Исторически первый, недоступный широкой аудитории технический отчет языка Pascal был сделан Швейцарским федеральным технологическим институтом ЕТН (Eidgenoessische Technische Hochschule) в ноябре 1970 года. Официальной же датой рождения языка считается начало 1971 года, когда вышеупомянутый отчет был перепечатан в первом номере журнала Acta In-formatica. Автором языка является швейцарский профессор Никлаус Вирт (Niklaus К. Wirth).
Во время активного использования языка наблюдалось острая конкуренция с языком С. Большую роль в массовом распространении языка Pascal сыграла компания Borland, создавшая версию Тurbo Раsсаl. После этого уже стали появляться многочисленные модификации: в версии 3.0 появилась возможность работы со встроенной графикой, в версии 4.0 — модули, в версии 5.5 — возможность работы с объектами. Версия 7.0 поменяла название и стала называться Borland Pascal. Наконец, при появлении Delphi язык стал называться Object Pascal. Среда Kylix также использует язык Object Pascal.
Общий обзор языка
Типы данных
Интерфейсы
Листинг 10 1 Объявление интерфейса
Листинг 10 2 Объявление класса содержащего интерфейс
Интерфейс IUnknown
Листинг 10 3 Описание базового интерфейса IUnknown
Класс TlnterfacedObject
Листинг 10 4 Определение класса TInterfacedObject
Использование оператора as
Использование ключевого слова implements
Листинг 10 5 Использование ключевого слова implements
Графический интерфейс пользователя
Создание SDI и MDIприложений
Рисунок 10 1 Диалоговое окно New Items
Рисунок 10 2 Вкладка Projects
Рисунок 10 3 Главная форма MDIприложения
Рисунок 10 4 Три расположенных рядом дочерних окна внутри главной формы
Листинг 10 6 Код автоматически создаваемой для MDIприложения
Консольные приложения
Рисунок 10 5 Пиктограмма Console Application
Листинг 10 7 Заготовка для консольного приложения
Алфавит и словарь языка
Структура программы
Комментарии
Операторы
Директивы компилятора
Работа с сокетами
Листинг 11 1 Список сетевых услуг содержащийся в файле services
Создание справочной
Системы
Листинги всех трех файлов приводятся в конце книги в Приложении 2
Работа с графикой
В Kylix
Обновление экрана
Рисунок 13 1 Форма приложения
Листинг 13 1 Код обработки события OnPaint
Листинг 13 2 Код обработки события OnClick
Рисунок 13 2 Информационное окно извещающее об обновлении формы
Типы графических объектов
Таблица 13 1 Типы графических объектов Kylix
Таблица 13 2 Свойства объекта Canvas
Таблица 13 3 Методы объекта Canvas
Таблица 13 3 (продолжение)
Таблица 13 3 (продолжение)
Таблица 13 3 (окончание)
Использование пера
Листинг 13 3 Установка значения цвета пера
Листинг 13 4 Установка ширины пера
Листинг 13 5 Смена стилей пера
Использование кисти
Листинг 13 6 Установка цвета кисти
Листинг 13 7 Установка стииля кисти
Листинг 13 8 Загрузка графического образа из файла
Использование методов объекта Canvas
Листинг 13 9 Пример рисования прямых линий procedure TForm1 FormPaint(Sender TObject); begin
Рисунок 13 3 Форма с диагональными линиями
Рисунок 13 4 Ломаная линия
Листинг 13 10 Построение ломанной линии
Листинг 13 11 Прямоугольник со вписанным эллипсом
Рисунок 13 5 Эллипс вписанный в прямоугольник
Листинг 13 12 Прямоугольник со скругленными углами procedure TForm1 FormPaint{Sender TObject); begin
Рисунок 13 6 Прямоугольник со скругленными углами
Создание приложения наподобие графического редактора
Листинг 13 13 Объявление типа и переменных
Листинг 13 14 Обработчики нажатия кнопок
Листинг 13 15 Обработчик события OnMouseup
Листинг 13 16 Обработчик события OnMouseMove
Другие методы работы с графикой в Куliх
Листинг 13 17 Создание объекта Bitmap
Листинг 13 18 Прямая работа с Bitmap
Загрузка и сохранение графических файлов
Листинг 13 29 Загрузка графики из файла
Листинг 13 20 Сохранение графики в файл
Работа с буфером обмена
Листинг 13 21 Копирование графики в буфер обмена
Листинг 13 22 Вырезание графики в буфер обмена
Листинг 13 23 Копирование графики
Работа с мышью
Таблица 13 4 События мыши
Таблица 13 4 (окончание)
Таблица 13 5 Параметры событий мыши
Рисунок 13 7 Обработка события OnMouseDown
Листинг 13 26 Установка позиции пера в координатах указаннных пользователем
Листинг 13 27 Пример рисования линии
Рисунок 13 8 Пример рисования линий
Листинг 13 28 Пример обработки
Рисунок 13 9 Обработка события OnMouseMove
Создание простой игровой программы
Рисунок 13 10 Формазаготовка для игровой программы
Листинг 13 29 Листинг игровой программы "Крестикинолики"
Рисунок 13 11 Поле для игры
Рисунок 13 12 Программа в процессе работы
Процессы и потоки
Общий обзор потоков
Листинг 14 1 Объект TThred
Рисунок 14 1 Добавление объекта потока в проект с помощью диалогового окна New Items
Листинг 14 2 Заготовка для ноиого объукта потока
Инициализация потоков
Таблица 14 1 Значения свойства Policy
Таблица 14 2 Значения свойства Priority для Windows
Листинг 14 3 Проверка прекращения работы потока
Рисунок 14 2 Форма приложения
Листинг 14 4 Модуль первого потока
Листинг 14 5 Модуль второго потока
Листинг 14 6 Главный модуль многопоточного приложения
Рисунок 14 3 Результат работы многопоточного приложения
Использование главного CLXпотока
Листинг 14 7 Использование синхронизации
Координация потоков
Листинг 14 8 Объявление локальных переменных в потоке класса TThread
Основы баз данных
Рисунок 15 1 Основные типы баз данных
Архитектура баз данных
Рисунок 15 2 Схема приложения базы данных
Таблицы баз данных
Рисунок 15 3 Структура таблицы базы данных
Таблица может содержать разнотипные
Средства для работы с базами данных
Листинг 15 1 Модуль Ffactlin
Рисунок 15 4 Форма приложения базы данных
Рисунок 15 5 Приложение в работе
Компоненты для работы с базами данных
Таблица 16 1 Свойства компонента TDataSource
Таблица 16 2 Свойства компонента TClientDataSet
Таблица 16 2 (окончание)
Таблица 16 3 Свойства компонента TDataSetProvider
Вкладка dbExpress
Таблица 16 4 Свойства компонента TSQLConnection
Таблица 16 4 (окончание)
Таблица 16 5 Свойства компонента TSQLDataSet
Таблица 16 6 Свойства компонента TSQLQuery
Таблица 16 7 Свойства компонента TSQLStoredProc
Таблица 16 7 (окончание)
Таблица 16 8 Свойства компонента TSQLTable
Таблица 16 9 Свойства компонента TSQLMonitor
Таблица 16 10 Свойства компонента TSQLClientDataSet
Таблица 16 10 (продолжение)
Таблица 16 10 (окончание)
Вкладка Data Controls
Основы языка SQL
Таблица 17 1 Основные операторы определения данных
Таблица 17 2 Основные операторы управления данными
Таблица 17 3 Основные операторы манипулирования данными
Функции языка SQL
Таблица 17 4 Основные статистические функции
Таблица 17 5 Основные строковые функции
Таблица 17 5 (окончание)
Иллюстрированный самоучитель по Kylix
Примеры создания приложений баз данных
Окно New Items
Пиктограмма Data Module окна New Items
Компонент Clients в окне модуля данных
Диалоговое окно добавления новых полей Добавим определения полей представленные в табл 18 1
Таблица 18 1 Определения полей
Установка свойств поля ID в окне Object Inspector
Установка свойств поля Name в окне Object Inspector
Поля ID и Name
Диалоговое окно сохранения файла таблицы
Поля компонента Clients
Модуль данных
Листинг 18 1 Содержание типичного файла базы данных
Таблица 18 2 Поля определяемые в свойстве ChlidDefs
Листинг 18 2 Содержимое файла базы данных
Введение в создание компонентов
Выбор предка компонента
Таблица 19 1 Базовые классы CLX
Таблица 19 1 (окончание)
Создание заготовки компонента
Окно эксперта компонентов
Заполненное окно эксперта компонентов
Листинг 19 1 Модуль заготовки нового класса
Статические методы
Виртуальные методы
Динамические методы
Замещенные методы
Абстрактные методы
Построение компонентов
Листинг 19 2 Пример создания свойств нового компонента
Листинг 19 3 Создание свойств перечиляемого типа
Перечисляемое свойство MyEnumProp в новом компоненте TMyButton
Листинг 19 4 Создание свойствамножества unit QMyButton;
Свойствомножество MyOptions в новом компоненте TMyButton
Листинг 19 5 Создание потомка TPersistenttype
Листинг 19 6 Добавление свойстваобъекта в компонент TMyButtontype
Листинг 19 7 Полный листинг для нового компонента
Свойствообъект MyObject в новом компоненте TMyButton
Листинг 19 8 Пример компонента TWeek
Результат работы компонента TWeek
Листинг 19 9 Определение базового
Листинг 19 10 показывает как создать
Листинг 19 10 Создание нового редактора свойств
Листинг 19 11 Процедура регистрации нового редактора свойствprocedure Register; begin
Создание событий компонента
Листинг 19 12 Метод диспетчеризации события TControl = class (TComponent) private
Листинг 19 13 Пример обработки события нажатия кнопки мыши
Наглядно демонстрирует результат работы вышеприведенной программы
Результат обработки события OnMouseDown
Листинг 19 14 Пример создания нового события unit halfmin; interface
Листинг 19 15 Обработчик нового события procedure TForm1 HalfMinutelHalfMinute(Sender TObject;
Создание методов компонента
Таблица 19 2 Размещение методов компонента в различных секциях
Регистрация компонента в среде Kylix
Результат регистрации компонента
Пакеты компонентов
Для чего используются пакеты
Таблица 20 1 Типы файлов пакетов
Использование пакетов в приложениях
Вкладка Packages диалогового окна Project Options
Окно добавления пакета в проект
Динамическая загрузка пакетов
Таблица 20 2 Основные runtime пакеты Kylix
Таблица 20 3 Основные designtime пакеты Kylix
Установка пакетов компонентов
Окно просмотра компонентов входящих в пакет
Создание и редактирование пакетов
Пиктограмма Package диалогового окна New Items
Редактор пакета
Вкладка Add Unit диалогового окна Add
Диалоговое окно Add
Диалоговое окно Project Options
Структура пакета
Компиляция пакета
Таблица 20 4 Директивы компилятора пакетов
Использование компилятора командной строки
Таблица 20 5 Ключи для компиляции пакета из командной строки
Простые типы данных
Таблица 2 1 Целочисленные типы данных
Таблица 2 2 Вещественные типы данных
Таблица 2 3 Отличия результатов операций над логическими типами
Таблица 2 3 (окончание)
Структурные типы данных
Таблица 2 4 Строковые типы данных
Таблица 2 5 Операции допустимые над множествами
Таблица 2 5 (окончание)
Одномерный массив на десять переменных
Двумерный массив А на двадцать элементов Задание статического двумерного массива
Листинг 2 1 Использование вариантной записи
Указатели процедурные и вариантные типы данных
Листинг 2 2 Пример использований указателей
Листинг 2 3 Описание процедурных указателей
Листинг 2 4 Использование данных вариантного типа
Проблемы переноса приложений
Перенос Windowsприложений в cреду Linux
Листинг 21 1 Использование директивы $IFDEF
CLX как версия VCL
Таблица 21 1 Части в которые сгруппированы компоненты CLX
Отличия CLX от VCL
Команды компоненты и другие элементы перенос которых невозможен
Таблица 21 2 Различие возможностей Delphi и Kytix
Совместимости модулей Kylix и Delphi
Таблица 21 3 Совместимые модули Delphi и Kylix
Таблица 21 3 (окончание)
Таблица 21 4 Модули VCL не поддерживаемые средой Kylix
Таблица 21 4 (окончание)
Непереносимые возможности
Совместное использование файлов ресурсов Linux и Windows
Различие сред Linux и Windows
Таблица 21 5 Отличия Linux и Windows
Таблица 21 5 (продолжение)
Таблица 21 5 (окончание)
Написание переносимого кода
Листинг 21 2 Код для среды Windows
Листинг 21 3 Платформонезависимый код
Использование специальных директив
Листинг 21 4 Неправильная работа директивы $IFDEF
Вывод сообщений
Перенос кода ассемблера в Linux
Сообщения и системные события
Таблица 21 6 Методы для подмены системных сообщений Windows
Переносимые приложения баз данных
Таблица 21 7 Соответствие компонентов доступа к данным
Листинг 21 5 Обработчик события
Кроссплатформенные Интернетприложения
Выражения и операторы
Арифметические выражения
Таблица 3 1 Арифметические операции над двумя операндами
Таблица 3 2 Арифметические операции над одним операндом
Листинг 3 1 Примеры использования арифметических операций
Таблица 3 3 Поразрядные арифметические операции
Таблица 3 4 Результаты выполнения поразрядных арифметических операций
Таблица 3 4 (окончание)
Листинг 3 2 Примеры использования побитовых операций
Таблица 3 5 Логические операции языка Object Pascal
Таблица 3 5 (окончание)
Таблица 3 6 Результаты выполнения логических операций
Простые операторы
Листинг 3 3 Пример работы с оператором with
Структурированные операторы
Листинг 3 4 Пример использования оператора case
Листинг 3 5 Пример использования оператора условия
Листинг 3 6 Примеры циклов с параметрами
Листинг 3 7 Пример цикла с предусловием
Листинг 3 8 Пример цикла с постусловием
Подпрограммы и модули
Функции
Листинг 4 1 Описание функции Mах
Процедуры
Листинг 4 2 Описание процедуры NumString
Иллюстрированный самоучитель по Kylix
Параметры и аргументы
Модули
Форма приложения
Модуль Unitl pas
Объекты и классы
Классы
Поля
Свойства
Листинг 5 1 Описание свойств объекта
События
Методы
Информация о типе во времени выполнения
Таблица 5 1 Методы для работы с RTTI
Интегрированная среда разработки Kylix
Таблица 6 1 Возможности Kylix
Таблица 6 1 (окончание)
Главное окно Kylix
Окно настройки
Вкладка Commands
Вкладка Options
Инспектор объектов
Свойства сгруппированные по категориям
Вкладка Events
Окно свойств редактора
Обозначения окна проводника
Окно Environment Options
Библиотека классов Kylix
Свойства события и методы компонентов
Области видимости объектов (компонентов)
Листинг 7 1 Область видимости объекта Form1
Иерархия классов CLX
Иерархия классов Kylix
Палитра компонентов Kylix
Вкладка Standart
Таблица 8 1 Компоненты вкладки Standard
Таблица 8 1 (продолжение)
Таблица 8 1 (окончание)
Вкладка Additional Эта вкладка содержит компоненты (слева направо) перечисленные в табл 8 2
Таблица 8 2 Компоненты вкладки Additional
Таблица 8 2 (окончание)
Таблица со строками
Таблица
Вкладка Common Controls
Таблица 8 3 Компоненты вкладки Common Controls
Таблица 8 3 (окончание)
Вкладка Dialogs
Таблица 8 4 Компоненты вкладки Dialogs
Таблица 8 4 (окончание)
Вкладка Data Access
Таблица 8 5 Компоненты вкладки Data Access
Таблица 8 5 (окончание)
Вкладка dbExpress
Таблица 8 6 Компоненты вкладки dbExpress
Таблица базы данных dbExpress
Таблица 8 6 (окончание)
Вкладка Data Controls
Таблица 8 7 Компоненты вкладки Data Controls
Таблица 8 7 (окончание)
Вкладка Internet
Таблица 8 8 Компоненты вкладки Internet
Таблица 8 8 (окончание)
Вкладка Indy Clients
Таблица 8 9 Компоненты вкладки Indy Clients
Таблица 8 9 (продолжение)
Таблица 8 9 (окончание)
Вкладка Indy Servers
Таблица 8 10 Компоненты вкладки Indy Servers
Таблица 8 10 (продолжение)
Таблица 8 10 (окончание)
Вкладка Indy MiscКомпоненты этой вкладки описываются в табл 8 11
Таблица 8 11 Компоненты вкладки Indy Misc
Таблица 8 11 (продолжение)
Таблица 8 11 (окончание)
Свойства события и методы основных компонентов Kylix
Таблица 8 12 Типы свойств компонентов Kylix
Таблица 8 12 (окончание)
Применение свойства Align
Таблица 8 13 Константы цвета в среде Kylix
Таблица 8 13 (продолжение)
Таблица 8 13 (продолжение)
Таблица 8 13 (окончание)
Таблица 8 14 Флаги значения свойства ControlState
Таблица 8 14 (окончание)
Таблица 8 15 Флаги значения свойства ControlStyle
Таблица 8 15 (окончание)
Таблица 8 16 Указатели мыши
Таблица 8 17 Флаги TScalingFlagФлаг
Координаты точек задаваемых при вызове метода Arc
Фигуры получаемые после вызова метода Chord
Листинг 8 1 Освобождение ресурсов графической подсистемы
Результат выполнения метода Pie
Схема обработки события
Пример применения событий OnDragDrop и OnDragOver
Листинг 8 2 Обработка события OnDragOver
Листинг 8 3 Код обработки OnDragOver
Листинг 8 4 Oбработчик события OnEndDrag
Окно выдаваемое при успешном перетаскивании строки из ListBox1 в ListBox2
Окно выдаваемое при неудачном перетаскивании строки из ListBox1 в ListBox2
Пример иллюстрирующий работу событий OnEnter и OnExit
Таблица 8 19 Коды клавиш
Таблица 8 19 (продолжение)
Таблица 8 19 (окончание)
Листинг 9 3 Обработка деления на ноль
Окно сообщения
Листинг 9 4 Использование временного имени объекта ислючения
Окно сообщения об исключении
Таблица 9 1 Коды ошибок ввода/вывода
Защита ресурсов
И регенерация исключений
Листинг 9 5 Регенерация исключения
Листинг 9 6 Вызов метода HandleException
Листинг 9 7 Конструкция try finally
Вложенные блоки в обработчике исключений (а) и в конструкции защиты кода (б)
Форма с пустым списком
Листинг 9 8 Генерация молчаливого исключения
Результат выполнения программы генерации молчаливого исключения
Результат многократного нажатия кнопки Button1
Генерация исключений
Листинг модуля справочных систем CLX и VCL
Листинги модулей для создания системы
Помощи
Листинг П2 1 Модуль WinHelpViewer pas
Листинг П2 2 Модуль ManViewer pas
Файловая система Linux
Таблица П1 Основные каталоги Linux
Таблица П1 (окончание)
-
Семь уроков по PostScript
Оператор в PostScript - это слово, заставляющее интерпретатор выполнять те или иные действия. Он эквивалентен командам или процедурам в других языках программирования. Когда интерпретатор встречает слово в PostScript-программе, он просматривает свой внутренний словарь и пытается определить, является ли это слово именем оператора
Основные понятия
Стек и арифметические операции
Арифметические операторы
Начала графики
Процедуры и переменные
Определение переменных и процедур
Работа со шрифтами
PostScript-шрифты
Поворот осей
Изменение шкал по осям координат
Сохранение состояния графики PostScript
Сглаживание углов
Условные переходы
Оператор if
Логические операторы: not and or и xor.
Оператор ifelse
Массивы
Еще раз о шрифтах
Кодирование шрифта
Контуры символов
Траектория отсечения
-
Формальные языки
Основными объектами изучения научного направления "Информатика" являются модели, представимые в памяти компьютера. Методы построения подобных моделей в различных предметных областях основаны на моделях конечных автоматов и формальных грамматик. Широкое использование таких моделей в теоретических исследованиях и разработке систем, используемых на практике, позволяет рассматривать их как одну из основ образования по направлению "Информатика". Главным назначением дисциплины "Формальные языки, грамматики и автоматы" является ознакомление студентов, обучающихся по направлению "Информатика" с основами теории, методами и приемами практического использования аппарата формальных грамматик и конечных автоматов. Изучение дисциплины планируется на 5-ом семестре и включает: курс лекций ( 4 часа в неделю ), лабораторные работы ( 2 часа в неделю ) и курсовую работу.
Лабораторные работы выполняются в компьютерном классе с использованием системы обучения синтаксическому анализу ( ОСА ). Эта система была разработана на кафедре Вычислительной техники в основном силами доц. Разумовского Г.В. и ассистента Кузнецова И.А. Она позволяет автоматизировать некоторые этапы синтеза магазинных автоматов и моделировать их работу.
Трансляторы , интерпретаторы и компиляторы
Стадии работы компилятора
Построение компилятора
Определение формальной грамматики и языка
Первичные понятия
Примеры, иллюстрирующие первичные понятия
Пустой язык
Термины
Типы формальных языков и грамматик
Грамматики типа 0
Грамматики типа 1
Грамматики типа 2
Грамматики типа 3
Вывод в КС-грамматиках и правила построения дерева вывода
Синтаксический разбор
Левый и правый выводы
Неоднозначные и эквивалентные грамматики
Способы задания схем грамматик
Форма Наура-Бэкуса
Итерационная форма
Синтаксические диаграммы
Резюме
Упражнение
Термины
Построение грамматик и грамматики, описывающие основные конструкции языков программирования
Рекомендации по построению грамматик
Описание списков
L>Перейти на страницу
Пример построения грамматик
Грамматики, описывающие целые числа без знака и идентификаторы
Грамматики для арифметических выражений
Грамматика для описаний
Грамматика, задающая последовательность операторов присваивания
Грамматики, описывающие условные операторы и операторы цикла
Формальные языки
Приведенные грамматики
Язык, допускаемый магазинным автоматом
Построение магазинного автомата
Пример построения автомата
Резюме
Упражнения
Определение непроизводящих символов
Определения недостижимых символов
Определения бесполезных символов
Исключение леворекурсивных правил
Исключение цепных правил
Преобразование неукорачивающих грамматик
Магазинные автоматы
Работа магазинного автомата
Формальные языки
Распознаватели и LL(K) - грамматики
Упражнения
Восходящие распознаватели
Расширенный магазинный автомат
Пример работы расширенного магазинный автомат
LR(k)-грамматики
Резюме
Упражнения
Распознавателя
Функции ПЕРВ, СЛЕД и множество ВЫБОР
Построение функции СЛЕД(B>)
Построение множества ВЫБОР
Слаборазделенные грамматики
LL( - грамматики
Построение магазинного автомата
Преобразование грамматик к виду LL(
Выделение общих частей
Выделение общих частей - 2
Формальные языки
Магазинные Преобразователи
Определение магазинного преобразователя
Описание работы магазинного преобразователя
Перевод определяемый преобразователем
Построение преобразователя
Пример построения преобразователя
Порядок построения детерминированного магазинного преобразователя
Построение восходящих преобразователей
Формальные языки
Задача структурного синтеза
PART
Обобщенная структурная схема автомата
Функциямиями выходов
Функциями возбуждения
Структурная схема с преобразователями входных и выходных сигналов
Структурная схема на элементах импульсного типа
Основные этапы структурного синтеза
Выбор числа элементов памяти и кодирование состояний автомата
Построение функции выхода
Типы элементов памяти
Построение функций возбуждения
Пример 2
Кодрование состояний с использованием соседей первого и второго рода
Кодирование с числом элементов памяти, равным числу состояний
Структурные схемы с дешифратором
Структурная схема с удвоенным числом элементов памяти
ОБЩИЕ ПОЛОЖЕНИЯ
Дискретного времени
Асинхронным
ОПИСАНИЕ РАБОТЫ АСИНХРОННОГО АВТОМАТА
СОСТЯЗАНИЕ ЭЛЕМЕНТОВ ПАМЯТИ
Гонками
КОДИРОВАНИЕ СОСТОЯНИЙ
ЭВРИСТИЧЕСКИЙ СПОСОБ КОДИРОВАНИЯ
СВЯЗЬ АСИНХРОННОГО АВТОМАТА С ВНЕШНЕЙ СРЕДОЙ
ПОСТРОЕНИЕ ЭЛЕМЕНТОВ ПАМЯТИ
АСИНХРОННЫЙ ТРИГГЕР
АСИНХРОННЫЙ S-ТРИГГЕР
ТРИГГЕРЫ С СИНХРОНИЗАЦИЕЙ
ТРИГГЕРЫ С ЗАДЕРЖКОЙ
T - ТРИГГЕР С ЗАДЕРЖКОЙ
АСИНХРОННЫЙ ТРИГГЕР J-K С ЗАДЕРЖКОЙ
ТРИГГЕР J-K С ЗАДЕРЖКОЙ И СИНХРОНИЗАЦИЕЙ
ТРИГГЕР D-V С ЗАДЕРЖКОЙ И СИНХРОНИЗАЦИЕЙ
УПРАЖНЕНИЯ
-
Язык AHDL
Операторы и элементы AHDL являются мощным, многогранным и легким в использовании средством. Вы можете создавать весь иерархический проект с помощью AHDL или смешивать TDF файлы с другими типами файлов в один проект.
Хотя Вы можете воспользоваться любым текстовым редактором для создания TDF файлов, но только текстовой редактор системы MAX+PLUS II дает Вам возможность воспользоваться его преимуществами, когда Вы вводите, компилируете и отлаживаете Ваш AHDL проект.
AHDL проект легко вставить в иерархию проекта. В текстовом редакторе Вы можете автоматически создавать символ, представляющий TDF файл и вводить его в графический файл проекта (Graphic Design File (.gdf)). Аналогичным образом Вы можете объединять заказные функции и свыше 300 мегафункций и макрофункций, поставляемых Альтерой, включая функции библиотеки параметрических модулей (LPM), в любой TDF файл.
Как пользоваться языком AHDL
Вставка шаблонов AHDL
Создание текстового выходного файла
Использование чисел
Использование констант и оценочных функций
Комбинаторная логика
Реализация булевых выражений и уравнений
Именование булевых операторов и компараторов
Объявление узлов
Определение шин
Реализация условной логики
Оператор If Then
Оператор Case
Оператор If Then против оператора Case
Создание дешифраторов
Использование для переменных значений по умолчанию
Реализация логики с активными низкими уровнями
Реализация двунаправленных выводов
Реализация тристабильных шин
Последовательностная логика
Объявление регистров
Объявление регистровых выходов
Создание счетчиков
Конечные автоматы
Реализация конечных автоматов
Установка сигналов Clock, Reset Enable
Присваивание состояний
Конечные автоматы с синхронными выходами
Конечные автоматы с асинхронными выходами
Выход из некорректных состояний
Реализация иерархических проектов
Использование непараметрических функций
Использование параметрических функций
Использование заказных мега и макро функций
Импорт и экспорт конечных автоматов
Реализация LCELL SOFT примитивов
Реализация RAM ROM
Использование итеративно-генерируемой логики
Использование условно-генерируемой логики
Использование оператора Assert
Зарезервированные слова
Зарезервированные идентификаторы
Символы
Строковые и символьные имена
Шины
Диапазоны и поддиапазоны шин
Числа в AHDL
Арифметические выражения
Встроенные оценочные функции
Булевы выражения
Логические операторы
Булевы операторы, использующие NOT
Булевы операторы, использующие AND, NAND, OR, NOR, XOR, и XNOR
Арифметические операторы в булевых выражения
Компараторы
Приоритеты булевых операторов и компараторов
Мегафункции/LPM
Макрофункции
Примитивы
Порты
Структура проекта
Обзор
Оператор Title
Оператор Parameters
Оператор Include
Оператор Constant
Оператор Define
Оператор Function Prototype
Оператор Options
Оператор Assert
Раздел Subdesign
Раздел Variable
Описание объектов
Описание узлов
Объявление конечных автоматов
Объявления псевдоимен конечных автоматов
Раздел Logic
Булевские выражения
Управляющие булевские выражения
Оператор Case
Оператор Defaults
Оператор If Then
Оператор If Generate
Оператор For Generate
Подставляемая ссылка для реализации логической функции (In-Line Logic Function Reference)
Оператор Truth Table
Контекстно-зависимая помощь
-
Язык процедур 2-REXX для OS-2
Язык процедур 2/REXX для OS/2* (именуемый в дальнейшем REXX) разработан как язык процедур Systems Application Architecture* для семейства продуктов типа Office Vision и операционной системы OS/2. Он предназначен для того, чтобы облегчить программирование в стадии кодирования и отладки. Высокое качество программирования может быть достигнуто при использовании общепринятых слов английского языка в синтаксисе языка процедур, что одинаково понятно как начинающему, так и опытному программисту.
REXX использует ряд мощных программных функций общего назначения и стандартные арифметические возможности наряду с командами OS/2 в простой конструкции. Существующие пакетные файлы могут быть преобразованы в процедуры REXX, обладающие большими функциональными возможностями.
Процедуры REXX выполняются только в сеансах OS/2, они должны иметь расширение файла .CMD и начинаться со строки комментария (/*....*/). Также, как и для пакетных файлов, чтобы выполнить процедуру REXX, необязательно указывать расширение .CMD.
Использование сравнений
Логические операторы - Примеры
Пример цикла DO WHILE
Пример цикла DO UNTIL
Язык процедур 2-REXX для OS-2
Язык процедур 2/REXX для OS/2
Приступая к работе с REXX
Написание процедур
Использование основных элементов языка REXX
Комментарии
Строки
Инструкции
Команды OS/2
Операторы присваивания
Метки
Язык процедур 2-REXX для OS-2
Работа с переменными и арифметическими выражениями
Переменные
Значение
Выполнение арифметических вычислений
Написание арифметических процедур REXX
Язык процедур 2-REXX для OS-2
Средства языка REXX
Принятие решений (IF THEN)
Инструкция ELSE
Инструкции SELECT, AND, WHEN, OTHERWISE и NOP
Операторы истинности и ложности
Логические операторы NOT, AND, OR
Язык процедур 2-REXX для OS-2
Автоматизация повторяющихся задач - использование циклов
Повторяющиеся циклы
Условные циклы
Выход из циклов
Разбор слов
Расширенные функции REXX
Язык процедур 2-REXX для OS-2
Ключевые инструкции
ADDRESS
ARG
CALL
DO
DROP
EXIT
IF
INTERPRET
ITERATE
LEAVE
NOP
NUMERIC
OPTIONS
PARSE
PROCEDURE
PULL
PUSH
QUEUE
RETURN
SAY
SELECT
SIGNAL
TRACE
Язык процедур 2-REXX для OS-2
Функции
ABBREV
ABS (Абсолютное значение)
ADDRESS
Функции API
ARG
BEEP
BITAND
BITOR
BITXOR
B2X (Двоичное в шестнадцатеричное)
C2D (Символьное в десятичное)
C2X (Символьное в шестнадцатеричное)
CENTER/CENTRE
CHARIN
CHAROUT
CHARS
COMPARE
CONDITION
COPIES
D2C (Десятичное в символьное)
D2X (Десятичное в шестнадцатеричное)
DATATYPE
DATE
DELSTR (Удаление строки)
DELWORD
DIGITS
DIRECTORY
ENDLOCAL
ERRORTEXT
FILESPEC
FORM
FORMAT
FUZZ
INSERT
LASTPOS
LEFT
LENGTH
LINEIN
LINEOUT
LINES
MAX
MIN
OVERLAY
POS
QUEUED
RANDOM
REVERSE
RIGHT
SETLOCAL
SIGN
SOURCELINE
SPACE
STREAM
STRIP
SUBSTR
SUBWORD
SYMBOL
TIME
TRANSLATE
TRUNC
VALUE
VERIFY
WORD
WORDINDEX
WORDLENGTH
WORDPOS
WORDS
X2B (Шестнадцатеричное в двоичное)
X2C (Шестнадцатеричное в символьное)
X2D (Шестнадцатеричное в десятичное)
XRANGE
Интерфейс очередей
Функция RXQUEUE
-
Языки и исчисления
Центральная идея математической логики восходит еще к Лейбницу и состоит в том, чтобы записывать математические утверждения в виде последовательностей символов и оперировать с ними по формальным правилам. При этом правильность рассуждений можно проверять механически, не вникая в их смысл.
Усилиями большого числа математиков и логиков второй половины XIX и первой половины XX века (Буль, Кантор, Фреге, Пеано, Рассел, Уайтхед, Цермело, Френкель, Гильберт, фон Нейман, Гедель и другие) эта программа была в основном выполнена. Принято считать, что всякое точно сформулированное математическое утверждение можно записать формулой теории множеств (одной из наиболее общих формальных теорий), а всякое строгое математическое доказательство преобразовать в формальный вывод в этой теории (последовательность формул теории множеств, подчиняющуюся некоторым простым правилам). В каком-то смысле это даже стало определением: математически строгим считается такое рассуждение, которое можно перевести на язык теории множеств.
Так что же, теперь математики могут дружно уйти на пенсию, поскольку можно открывать математические теоремы с помощью компьютеров, запрограммированных в соответствии с формальными правилами теории множеств? Конечно, нет, причем сразу по нескольким причинам.
Высказывания и операции
Полные системы связок
Схемы из функциональных элементов
Исчисление высказываний
Исчисление высказываний (ИВ)
Второе доказательство теоремы о полноте
Поиск контрпримера и исчисление секвенций
Интуиционистская пропозициональная логика
Языки и исчисления
Языки первого порядка
Формулы и интерпретации
Определение истинности
Выразимые предикаты
Языки и исчисления
Выразимость в арифметике
Невыразимые предикаты: автоморфизмы
Элиминация кванторов: элиминация кванторов
Языки и исчисления
Арифметика Пресбургера
Теорема Тарского-Зайденберга
Элементарная эквивалентность
Игра Эренфойхта
Понижение мощности
Общезначимые формулы
Аксиомы и правила вывода
Корректность исчисления предикатов
Языки и исчисления
Примеры выводимых формул
Выводимость из посылок
Переменные и константы
Полнота исчисления предикатов
Переименование переменных
Предваренная нормальная форма
Теорема Эрбрана
Сколемовские функции
Языки и исчисления
Аксиомы равенства
Повышение мощности
Полные теории
Плотные линейно упорядоченные множества
Теория Th(Q,=,,+,0,1)
Теория Th(Z,=,,S,0)
Алгебраически замкнутые поля характеристики 0
Вещественно замкнутые поля
Языки и исчисления
Неполные и неразрешимые теории
Теория равенства
Теория полугрупп
Формальная арифметика
Диаграммы и расширения
Ультрафильтры и компактность
Нестандартный анализ