-
-
Notifications
You must be signed in to change notification settings - Fork 10
Overview
⮨ Back to the Index | ➤ Installation Guide
The main goals of this repository are:
- Provide an platform-independent AutoIt Interpreter.
- Be as closely-compatible with the original AutoIt3 Standard as possible.
- Provide as much flexibility and extensibility as possible.
[TODO : elaborate]
The AutoIt Interpreter is developed in C# and F# and is based on the .NET Core Framework. This means that the AutoIt Interpreter can target any Platform which also supports .NET. These are namely Microsoft Windows, Linux, MacOS, and Android.
Most of the actual development has been taking place on a Windows-Platform, however, it has also been briefly tested on Linux and MacOS X.
Let the following be our AutoIt3 code:
ConsoleWrite("Hello World!" & @CRLF)
PrintOS()
Func PrintOS()
ConsoleWrite(@OSTYPE & " (Version " & @OSBUILD & ")" & @CRLF)
EndFunc
This table lists the execution results:
Execution Environment | Screenshot |
---|---|
SciTE Editor (Ground Truth) | ![]() |
Windows CMD | ![]() |
Linux Mint 18 Sarah (Remote VM) |
![]() |
Ubuntu 20 Focal | ![]() |
Linux WSL (Ubuntu) | ![]() |
MacOS X Mojave (Local VM) |
![]() |
At this point, one might rightfully wonder why it takes three to six seconds to run a simple 'Hello World'-script!? This is answered quite easily:
-
Most of these screenshots haven been taken from Virtual Machines with limited processing power and resources.
-
Upon closer inspection, one can see that the timings are divided into
Total
andScript
. These categories represent the total program runtime and the script execution time, respectively. Using the command line option-t
(or--telemetry
) we can inspect those timings in a more detailedno manner:The relevant line is the following:
In which we can see that the parser takes over 53% of the total time (~1.16 seconds in this example) with the initialization. This includes (but is not limited to) constructing the abstract syntax tree and building the Type-2 LR-Parser used to analyze and parse expressions. Once the parser has been constructed, the performance drastically improves.
Take a look at the article on the Interpreter's extended features for more information about telemetry measurements.
This project tries to follow the official AutoIt3 Language Specification as closely as possible, while trying to provide the maximum functionality to all target platforms.
Most core functions have been implemented for Windows, Linux and MacOS (see this tracking issue). Some functions like COM-, or GUI-functions will most likely only be implemented for Windows-based platforms due to the required access to Win32-API functions.
However, one future goal is to move away from Windows APIs towards cross-platform solutions — even if this might result in a loss of backwards compatibility.
The Features page contains a more detailed enumeration of all currently implemented AutoIt3 constructs and features. You can also check out the current implementation status of the AutoIt Interpreter.
The Interpreter has been re-designed from the ground up with an early focus on extensibility. It therefore comes with a modular plugin system, allowing developers to create plugins which can provide the AutoIt Interpreter with custom macros, variables, native/built-in functions, directives, and custom syntax constructs.
The AutoIt Interpreter comes already shipped with some custom syntactic and functional extensions, the documentation of which can be found on the extended features page.
Check out the Extensibility page for an explanation of the plugin system. If you want to create, we highly recommend you to read through the tutorial for creating your own plugin.
Wiki Home | Repository Home | Releases | License | Issues | Pull Requests | Projects
|
|
Facebook |
YouTube |
unknown6656.com