Алкогол

**Алкогол**  — гибридный язык программирования, имеющий узкую специализацию экономического плана (компиляция-распределение-выполнение) и состоящий из алгоритмического создания особых данных, используемых далее в объектно-ориентированном программировании исполнителей (собутыльников). (Для того, чтобы вам стал понятен принцип реализации языка, рекомендуется прочитать Особенности распределённого выполнения программ на Алкогол и Оптимизация программ в среде Алкогол).

Программирование на языке Алкогол называется  **алкоголизм** .

### Структура выполняемой программы

#### Заголовок программы

Заголовок исходной программы выполняет одну-единственную задачу: указать каков результат программы должен у нас получиться. Возможны варианты:

- Получить результат в общеупотребительном жидком спиртосодержащем виде (Пиво  **or**  Водка  **or**  Самогон  **or**  Чача  **or**  …)

ИЛИ

- Довести исполнителя «Собутыльник» до определённого состояния (Неполное веселье  **or**  Буйное веселье  **or**  Поросячий визг  **or**  пьяный вдрызг  **or**   **ЗАЦИКЛИВАНИЕ!!!** )

ИЛИ

- На свой страх и риск можно придумать собственный заголовок программы, но за последствия отвечать будете ВЫ!

Пример заголовка программы
 *Program:Logout;*  {пьяный вдрызг}

#### Модули агрегата

#### Типы данных

**Основные типы данных:**

- **Input**  — исходные данные (sugar, drojji, H2O и.т.п…)

- **Output**  — результат компиляции (название выходящего продукта). Могут быть заданы следующие необязательные параметры:

- **%vol**  — Значение функции  *« **GetSpirtVolValue** »*  в Output (от 1 до 95.9999999) (об этой функции подробнее написано ниже)

- **Degree**  — температура результата компиляции

- **Quality**  — Качество результата компиляции. Чем ниже качество — тем быстрее идёт компиляция программы, но тем выше вероятность выхода из строя исполняющей системы «Собутыльник». Годится для технической версии без собутыльников, но нуждается в обязательной отладке. Измеряется в диапазоне [min_degree..max_degree]

- **Tapa**  — Один из самых важных типов данных. Чтобы драгоценый результат компиляции не пропал зря, под него нужно отвести определённое место в памяти (читай в пространстве). Объем задаётся вещественным числом; единичное значение «1,0» обозначает 100 грамм (константа  *« **stopka** »* )

#### Описание меток

#### Типизированные константы

- **%vol:** 

- **GreatMendeleevVodka** =40.000 %

- **UnstableVodka** =39.975 %

- **4a4a** =75.65536 %

- **H2O** =0.00000000 %

- **rassol** =—16.384 %

- **spirt** =95.99 %

- **dryspirt** =99.99 %

- **Degree**  

- **optimalVodkacels** =6.5536 °C

- **whitewinecels** =10.24768 °C

- **redwinecels** =16.384

- **gleintwinecels** =65.536 °C

- **Tapa**  

- **stopka** =1.0

- **shkalik** =1.2801024

- **charka** =2.048

- **GranStakan** =4.096

- **BeerMug** =10.0

- **bottle** =15.0

- **BankaStandart** =20.000

- **VEDRO!!!** =204.8

#### Описание переменных

Переменая(англ. переменная(англ(overflow)))
Переменные могут специализироваться 2 способами:

- $pig=0;

- Оптимизация по стандарту ISO#ff1651 (iso «varing») $pig=0;

- Определение по стандарту ISO#ff1651 (iso «varing») $pig ravno 0; (используется редко по неизвестной причине)

- registred long unsignet realisttic double svinya01;

- Оптимизация по стандарту ISO#ff1651 (iso «varing») svinya01 set one;

- Определение по стандарту ISO#ff1651 (iso «varing») wtf svinya01=1;

Примечание
При создание любых инструкций на языке надо придерживатся ISO#ff1651. Иначе может быть создан продукт Necrosoft. Для создания продуктов Л2 Necrosoft не используйте ISO#ff1651.

Внимание! В  **Алкогол**  не может быть использовано больше 1 переменой! Рекомендуется в переменных хранить адрес дома, маршрут до дома(или исходный текст автопилота до дома), имя(своё, не своё).
Внимание! При использование константы  **spirt**  использование констант запрешено.
Внимание! При использование констант  **VEDRO!!!**  единовременно с  **spirt**  переменная больше не понадобится (что хорошо) никогда (что плохо).

#### Описание процедур и функций

Процедуры и функции введены для коллективной сборки компилятора, а так же для описания действий собутыльников. Функция отличается от процедуры лишь тем, что при её использовании возвращается определённое значение

#### Документированные функции:

- функция  **GetSpirtVolValue**  возвращает значение градусов имеющегося напитка.

 **NB!**  При существенном понижении градуса выполняется прерывание операционного модуля "собутыльник" 
из-за срабатывания системы защиты от несанкционированной попытки доступа на низком уровне 
и попытки записи данных в нулевое кольцо. 
Чтобы не допустить прерывания, нужно воспользоваться директивой  *{$pe4en'Protect-}*  
чтобы отключить систему самозащиты. 
Функция InputResult возвращает состояние собутыльника и выдаёт рекомендации чем нужно закусить, 
чтобы вернуться в исходное состояние. 
 *{$pe4en'Protect+}*  вновь включает самозащиту.

#### Описание собутыльников

См. Что угодно. Вкратце, xnj eujlyj dshf;ftncz gjchtlcndjv (уккок).

Собутыльник — существо, существование которых не доказано, но они есть! Василий Петрович лично это подтвердил.

#### Сам агрегат

Не существует. Так как является метаморфным энергетическим (предположительно нулл торсионым) вормированием Ъ_Ъ материи. Обязательно включает в себя мировые константы.

#### Заголовок программы

Не используется по причине stopk(a)'и в программах. Иначе область, отвечающая за заголовок программы.

## Алкогол++. Особенности усовершенствованной версии

- Добавлена функция генерации случайного градуса (от 1 до 95) для непредсказуемости результата

- Уменьшено время компиляции программы (для нетерпеливых)

- Реализована техническая поддержка операционной древесиной серий кора дуба и двойная кора дуба для особо благородных напитков

- Увеличено максимально задаваемое время выдержки (для гурманов)

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

## Другие значения

В спорте — гол, забитый в состоянии алкогольного опьянения.

## Примечания