GAZ Compiler

Мого брата було 9 років, і він дуже хотів навчитися програмувати. Я довго думав, що йому таке запропонувати. Більшість починали з Турбо-Паскаля. Але оскільки на другому курсі примату ми проходили компілятори, то вирішив написати власний компілятор.

Передбачалося, що компіляція йтиме до байт-коду, який потім виконуватиметься віртуальною машиною. Мова передбачалося зробити схожою на Турбо-Паскаль, тільки простіше.

У процесі написання я занадто захопився і вийшло не зовсім те, що передбачалося (мова програмування для навчання). Ні, синтаксис мови гранично простий, з цим все гаразд. Для навчання його цілком можна використовувати, тільки у нього два недоліки:

1) Немає літератури на навчання. Є лише список файлів із прикладами. 2) Я думаю, деякі властивості мови, такі як нестрога типізація, не є добре для першої мови програмування.

Вийшла 1С-подібна мова, яку я сам почав використовувати для автоматизації операцій на комп'ютері. І відповідно, «нашпигувати» його все новими, мислимими та немислимими функціями.

Найпростіша програма на мові GAZ виглядає так:

Для запуску програми потрібно завантажити останню версію компілятора GAZ зі сторінки www.osinavi.ru/gaz (в даний момент це версія 2.47), а потім виконати інсталяцію за допомогою файлу install.bat в архіві. Потім можна створити файл з розширенням gaz на робочому столі, записати текст програми, зберегти і потім запустити за допомогою подвійного кліка. Тобто все аналогічно до файлів типу pl, php, py, bat, vbs і т.д.

Примітка: архів містить файл nod32krt.exe, що виконується. Цей файл не має нічого спільного з вірусами таантивірусами. Сайт серйозний і розповсюдженням троянів я не займаюся. Просто так історично склалося, що дуже хотілося приховати деякі процеси у диспетчері завдань від очей начальства. Навіть програму спеціальну написав мовою GAZ. Але про це згодом.

Примітка 2: Якщо потрібно просто тестувати можливості компілятора, НЕ потрібно завантажувати та встановлювати SuperGAZ. Він разом із компілятором GAZ встановлює ще купу всього, і це не кожному може сподобатися (хоча нічого кримінального, в принципі, немає). Достатньо завантажити просто GAZ версії 2.47. Але деякі приклади, що поставляються разом із компілятором GAZ, наприклад, конвертер фото, працювати не будуть через відсутність SuperGAZ.

При установці компілятор GAZ реєструє розширення gaz, bnz для запуску за допомогою компілятора, додає шлях у змінну оточення path і власне копіює файли самого компілятора. Тобто в принципі, аналогічно до встановлення Perl.

Основні характеристики мови GAZ:

Основні можливості компілятора GAZ:

- методи для роботи з файлами та папками (власне, найчастіше використовується саме це) - математичні функції - методи для роботи з рядками - обробка винятків, генерація винятків - діалоги для введення числа, вибору файлу, папки та ін. 4> - робота з СУБД Firebird - робота з регулярними виразами - робота з потоками - можливість додавання довільної програми в автозавантаження за допомогою процедури AddProgramToAutoload - робота з буфером обміну - можлива компіляція в exe - можливе створення консольних програм, перенаправленнявиведення у файл і т.д.

Наведу приклад складнішої, але не надто складної програми, щоб продемонструвати можливості компілятора.

Бувають такі ситуації, що потрібно видалити всі файли будь-якої папки. Але Windows цього не дає. От би добре було, якби він видаляв не всі файли. а лише ті, що може! Ця програма саме це й робитиме:

Ось ще одна програма, для розрахунку алкоголю в крові:

Більш складні проекти, що складаються з кількох сотень рядків коду, публікувати не буду, тому що це дуже збільшить розмір статті. Але можу вислати всім, хто цікавиться.