Pascal Script Explained

Pascal Script
Developer:Carlo Kok, Innerfuse, RemObjects, Lazarus and Free Pascal teams
Description:Screenshot of a simple demonstration script
Paradigm:Procedural, object-oriented, scripting
Typing:Strong
Latest Release Version:3.0
Operating System:Linux, macOS, Windows
Genre:Scripting language
License:Custom open-source license
Influenced By:Pascal, Object Pascal
File Ext:.pas, .ifs

Pascal Script is a scripting language based on the programming language Pascal that facilitates automated runtime control over scriptable applications and server software. It is implemented by a free scripting engine that includes a compiler and an interpreter for byte code.

Pascal Script supports the majority of Object Pascal constructs, making it partly compatible to Delphi, Free Pascal and GNU Pascal.

Initially developed by Carlo Kok as CajScript and renamed to Innerfuse Pascal Script with version 2.23, the software was taken over by RemObjects, renamed again to RemObjects Pascal Script and offered as open source software for the Delphi IDE. Beginning with version 2.07 CajScript has been ported to Free Pascal. Since 2017 Pascal Script is included as a standard component in the Lazarus IDE.

Software using Pascal Script

Pascal Script can be used by installer scripts for Inno Setup, an open source setup engine. Using Pascal Script may provide additional flexibility during installation and uninstallation, e. g. by adding new wizard pages, calling DLLs and providing custom behaviour and install conditions.[1]

Pascal Script is also used for server-side scripting in Pascal Server Pages and maXbox, a scripter studio with an inbuild Delphi engine.

ReNamer, a batch-oriented automated file renaming tool for Windows, can be expanded by Macros written in Pascal Script.[2]

With the release of version 1.2, the Lazarus IDE began to include the Pascal Script engine, which is now available in form of several components. Additionally, some of Lazarus' standard packages including SynEdit and TAChart support Pascal Script, and the IDE may be extended by using macros written in Pascal Script.

Increasingly reported applications of Pascal Script in Science and Technology include SCADA,[3] robotics[4] and education.[5]

History

Pascal Script started out in 2000 with CajScript 1.0, which was soon superseded by CajScript 2.0 (later called Innerfuse Pascal Script 2.0).

Version 2.0 interpreted scripts while it ran them, which had the disadvantage that every piece of code had to be reparsed every time the script engine went over it.

With Pascal Script 3.0, this was changed to a new model, where the compiler and runtime were completely separated from each other and used a custom byte code format to represent the compiled script. This compiled script only contained the bare minimum that was required to execute the code.

Later, when Carlo Kok joined RemObjects, it was renamed RemObjects Pascal Script and is now being maintained by RemObjects Software.[6] A fork of Pascal Script is maintained in the sources of the Lazarus IDE. The Lazarus and Free Pascal teams ported PascalScript from Intel processors to additional architectures including PowerPC and ARM.[7]

External links

Notes and References

  1. Murphy . Craig . Inno Setup Revisited . The Developers Magazine . 2004 . 15–28 . 25 May 2019.
  2. Web site: ReNamer:Pascal Script - den4b Wiki . www.den4b.com . 7 July 2019.
  3. Tynchenko . V S . Kukartsev . V V . Tynchenko . V V . Chzhan . E A . Korpacheva . L N . Automation of monitoring and management of conveyor shop oil-pumping station of coal industry enterprise . IOP Conference Series: Earth and Environmental Science . 15 November 2018 . 194 . 2 . 022044 . 10.1088/1755-1315/194/2/022044. 2018E&ES..194b2044T . free .
  4. Book: 10.1109/ICARSC.2019.8733649. Hardware-in-the-loop simulation approach for the Robot at Factory Lite competition proposal. 2019 IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC). 1–6. 2019. Lima. Jose. Costa. Paulo. Brito. Thadeu. Piardi. Luis. 10198/20934 . 978-1-7281-3558-8. 183602145 .
  5. Romeo . A. . The Role of Simulation Tools in the Teaching of Robot Control and Programming . 10.1.1.529.8255 .
  6. Web site: Pascal Script RemObjects Software. RemObjects Software. 18 January 2014.
  7. Web site: Pascal Script - Lazarus wiki . wiki.freepascal.org . 25 May 2019.