1

Тема: AHK: AutoHotkey это интерпретатор или компилятор

Как AutoHotkey обрабатывает команды в скрипте который лежит рядом с .exe файлом, интерпретирует по строчкам или компилирует и потом выполняет как машинный код?

И еще вопрос если использую ahk2exe и получу .exe файл то как он будет выполнятся и что внутри него, внутри него исходный код и он интерпретирует по строчкам или там машинный код?

2

Re: AHK: AutoHotkey это интерпретатор или компилятор

AutoHotkey — интерпретируемый язык программирования. В обоих случаях будет работать одинаково, разница лишь в том, что в первом случае скрипт и интерпретатор разделены на два файла, а во втором объединены в один.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: YMP, 2016-08-03 19:17:17)

Re: AHK: AutoHotkey это интерпретатор или компилятор

Помнится, я где-то читал, что скрипт частично компилируется и только потом выполняется. За счёт этого, мол, он работает быстрее.

Имеется в виду в том числе и отдельный скрипт. В exe он всё равно хранится в виде текста.

4

Re: AHK: AutoHotkey это интерпретатор или компилятор

В статье про это написано. А как конкретно реализовано в AHK — сходу не нашёл.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: AutoHotkey это интерпретатор или компилятор

Спасибо, теперь ясно почему тяжелые программки так долго выполняются :-)

6

Re: AHK: AutoHotkey это интерпретатор или компилятор

Вот.

Each script is semi-compiled while it is being loaded and syntax-checked. In addition to reducing the memory consumed by the script, this also greatly improves runtime performance.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: AutoHotkey это интерпретатор или компилятор

Elena пишет:

Спасибо, теперь ясно почему тяжелые программки так долго выполняются :-)

Можно и машинный код использовать в скрипте. Хранится там в виде хекс-строки, а потом пишется в память и выполняется через DllCall.

8

Re: AHK: AutoHotkey это интерпретатор или компилятор

teadrinker
Да, значит, это не такая уж особенность АНК, как я тогда подумал.