Eclipse Golo


Golo is a simple dynamically-typed programming language for the Java Virtual Machine (JVM) that has been designed to leverage the capabilities of the Java 7 invokedynamic bytecode instruction and java.lang.invoke API (JSR 292) (Ponge, Le Mouël, and Stouls 2013) (Thalinger and Rose 2010). Coupled with a minimal runtime that directly uses the Java SE API, Golo is an interesting language for rapid prototyping, polyglot application embedding, research (e.g., runtime extensions, language prototyping) and teaching (e.g., programming, dynamic language runtime implementation) (Maingret et al. 2015) (Ponge et al. 2015).


Maingret, Baptiste, Frédéric Le Mouël, Julien Ponge, Nicolas Stouls, Jian Cao, and Yannick Loiseau. 2015. “Towards a Decoupled Context-Oriented Programming Language for the Internet of Things.” In Proceedings of the 7th International Workshop on Context-Oriented Programming, 7:1–7:6. COP’15. New York, NY, USA: ACM. doi:10.1145/2786545.2786552.

Ponge, Julien, Frédéric Le Mouël, and Nicolas Stouls. 2013. “Golo, a Dynamic, Light and Efficient Language for Post-Invokedynamic Jvm.” In Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, 153–58. PPPJ ’13. New York, NY, USA: ACM. doi:10.1145/2500828.2500844.

Ponge, Julien, Frédéric Le Mouël, Nicolas Stouls, and Yannick Loiseau. 2015. “Opportunities for a Truffle-Based Golo Interpreter.” CoRR abs/1505.06003.

Thalinger, Christian, and John Rose. 2010. “Optimizing Invokedynamic.” In Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, 1–9. PPPJ ’10. New York, NY, USA: ACM. doi:10.1145/1852761.1852763.