Golo (programming Language)
   HOME

TheInfoList



OR:

Golo is computer
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
, a
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
for the
Java virtual machine A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
(JVM). It is simple, with
dynamic Dynamics (from Greek δυναμικός ''dynamikos'' "powerful", from δύναμις ''dynamis'' "power") or dynamic may refer to: Physics and engineering * Dynamics (mechanics), the study of forces and their effect on motion Brands and enter ...
,
weak Weak may refer to: Songs * Weak (AJR song), "Weak" (AJR song), 2016 * Weak (Melanie C song), "Weak" (Melanie C song), 2011 * Weak (SWV song), "Weak" (SWV song), 1993 * Weak (Skunk Anansie song), "Weak" (Skunk Anansie song), 1995 * "Weak", a son ...
typing. It was created in 2012 as part of the research activities of the DynaMid group of the Centre of Innovation in Telecommunications and Integration of service (CITI) Laboratory at
Institut national des sciences appliquées de Lyon The Institut National des Sciences Appliquées de Lyon (; "Lyon National Institute for Applied Sciences") or INSA Lyon is a French grande école and engineering school. The university is located on the La Doua – LyonTech campus, in a cluster o ...
(INSA). It is distributed as
free and open-source software Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
under the
Eclipse Public License The Eclipse Public License (EPL) is a free and open source software license most notably used for the Eclipse IDE and other projects by the Eclipse Foundation. It replaces the Common Public License (CPL) and removes certain terms relating t ...
2.0.


History

It has been built as a showcase on how to build a language runtime with invokedynamic. Golo is largely interoperable with the programming language
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
and other JVM languages (e.g., numeric types are boxing classes from java.lang, and collection literals leverage java.util classes), that runs on the JVM. In June 2015, Golo became an official
Eclipse Foundation The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit organization that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization supp ...
project. The project was terminated in September 2022.


Technical details

The language features have been initially designed around the abilities of invokedynamic – JSR 292 that appeared in Java SE 7. Golo uses
ahead-of-time compilation In computer science, ahead-of-time compilation (AOT compilation) is the act of compiling an (often) higher-level programming language into an (often) lower-level language before execution of a program, usually at build-time, to reduce the amount ...
of
bytecode Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (normal ...
. While the bytecode remains stable over a program execution, the invokedynamic-based reconfigurable call sites support the adaptive dispatch mechanisms put in place for helping the
HotSpot Hotspot, Hot Spot or Hot spot may refer to: Places * Hot Spot, Kentucky, a community in the United States Arts, entertainment, and media Fictional entities * Hot Spot (comics), a name for the DC Comics character Isaiah Crockett * Hot Spot (Tr ...
just-in-time compiler In computing, just-in-time (JIT) compilation (also dynamic translation or run-time compilations) is compiler, compilation (of Source code, computer code) during execution of a program (at run time (program lifecycle phase), run time) rather than b ...
(JIT) to extract reasonable performance.


Publications

* Baptiste Maingret, Frédéric Le Mouël, Julien Ponge, Nicolas Stouls, Jian Cia and Yannick Loiseau. Towards a Decoupled Context-Oriented Programming Language for the Internet of Things. To appear in th
7th International Workshop on Context-Oriented Programming
hosted at ECOOP 2015. Prague, Czech Republic. July 2015. * Julien Ponge, Frédéric Le Mouël, Nicolas Stouls, Yannick Loiseau. Opportunities for a Truffle-based Golo Interpreter. Technical report''
arXiv:1505.06003 (cs.PL)
an
HAL-INRIA deposit
* Julien Ponge, Frédéric Le Mouël and Nicolas Stouls. Golo, a Dynamic, Light and Efficient Language for Post-Invokedynamic JVM. In Procs. o

Stuttgart, Germany. September 2013
DOI linkHAL-INRIA depositSlides


See also

*
List of JVM languages This list of JVM languages comprises notable computer programming languages that are used to produce computer software that runs on the Java virtual machine (JVM). Some of these languages are interpreted by a Java program, and some are compiled ...


References

* * * * ]


External links

* {{Official website, golo-lang.org
Golo at GitHub repository

Golo incubation page at Eclipse.org

Eclipse integration for Golo

Netbeans module to support Golo
Programming languages JVM programming languages Software using the Eclipse Public License