CFP last date
21 April 2025
Reseach Article

Design and Implementation of Wyltl: An Imperative, Embeddable and Portable Programming Language

by Dineth Mallawarachchi, Yasas Jayaweera
International Journal of Computer Applications
Foundation of Computer Science (FCS), NY, USA
Volume 186 - Number 76
Year of Publication: 2025
Authors: Dineth Mallawarachchi, Yasas Jayaweera
10.5120/ijca2025924669

Dineth Mallawarachchi, Yasas Jayaweera . Design and Implementation of Wyltl: An Imperative, Embeddable and Portable Programming Language. International Journal of Computer Applications. 186, 76 ( Apr 2025), 22-29. DOI=10.5120/ijca2025924669

@article{ 10.5120/ijca2025924669,
author = { Dineth Mallawarachchi, Yasas Jayaweera },
title = { Design and Implementation of Wyltl: An Imperative, Embeddable and Portable Programming Language },
journal = { International Journal of Computer Applications },
issue_date = { Apr 2025 },
volume = { 186 },
number = { 76 },
month = { Apr },
year = { 2025 },
issn = { 0975-8887 },
pages = { 22-29 },
numpages = {9},
url = { https://ijcaonline.org/archives/volume186/number76/design-and-implementation-of-wyltl-an-imperative-embeddable-and-portable-programming-language/ },
doi = { 10.5120/ijca2025924669 },
publisher = {Foundation of Computer Science (FCS), NY, USA},
address = {New York, USA}
}
%0 Journal Article
%1 2025-04-01T14:54:54+05:30
%A Dineth Mallawarachchi
%A Yasas Jayaweera
%T Design and Implementation of Wyltl: An Imperative, Embeddable and Portable Programming Language
%J International Journal of Computer Applications
%@ 0975-8887
%V 186
%N 76
%P 22-29
%D 2025
%I Foundation of Computer Science (FCS), NY, USA
Abstract

Wyltl is a programming language with a strong focus on simplicity, portability and functionality. It supports core imperative programming features such as variables, conditionals, loops, functions, and closures. Additionally, Wyltl provides a rich standard library with support for mathematical, date / time, JavaScript Interoperability, i /o, type conversion and more! Its implementation allows Wyltl code to be executed on a variety of platforms such as Windows, Linux, Web (via Web Assembly), and allows Wyltl to be used as an embedded programming language for applications written using the Go programming language. Wyltl offers two reference implementations, a tree walking interpreter [3], and a stack based virtual machine. The primary distinction between the two is execution speed. Executing compiled Wyltl code through the virtual machine is 1.5x - 4x faster depending on the Wyltl code that is executed. However, developers who wish to extend Wyltl with new language features will find the Interpreter easier to modify. Wyltl includes a compilation format named ‘wyltlc’ which allows developers to compile their existing code to an intermediate format which can be executed with the Wyltl stack based virtual machine. This paper provides a breakdown of the design of the Wyltl language and the implementation of its interpreter, compiler and virtual machine.

References
  1. Pratt, V.R. (1973) ‘Top-down operator precedence’, Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL ’73, pp. 41–51. doi:10.1145/512927. 512931.
  2. Ford, B. (2002) ‘Packrat parsing: Simple, Powerful, Lazy, Linear Time’, Proceedings of the seventh ACM SIGPLAN international conference on Functional programming, pp. 36–47. doi:10.1145/581478.581483.
  3. Nystrom, R. (2021) Crafting interpreters. United States Genever Benning.
  4. Nystrom, B. (no date) Wren. Available at: https://wren.io/ (Accessed: 22 February 2025).
  5. Ierusalimschy, R., de Figueiredo, L.H. and Filho, W.C. (1996) ‘Lua—an extensible extension language’, Software: Practice and Experience, 26(6), pp. 635–652. doi:10.1002/(sici)1097-024x(199606)26:6<635::aid-spe26>3.0.co;2-p.
  6. Ousterhout, J.K., 1998. Scripting: Higher level programming for the 21st century. Computer, 31(3).
Index Terms

Computer Science
Information Sciences
Programming Languages
Interpreter
Virtual Machines
Compilers
Imperative Programming

Keywords

Embeddable Programming Language Portable Programming Language Stack based Virtual Machine Tree Walking Interpreter Web Assembly Go