Skip to content

jblang/xlogo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XLogo

XLogo is a Logo interpreter written in Java and licensed under the GPL. It has many extensions relative to other Logo implementations, such as networking, sound, 3D, and animation support. It supports nine languages: French, English, Spanish, Arabic, Portuguese, German, Esperanto, Galician and Greek.

Logo is a programming language developed in the 1970's by Wally Feurzeig, Seymour Papert, and Cynthia Solomon. It is an excellent language to begin learning with, as it teaches the basics of things like loops, tests, procedures, etc. The user moves an object called a "turtle" around the screen using commands as simple as forward, back, right, and so on. As it moves, the turtle leaves a trail behind it, and so it is therefore possible to create drawings. Operations on lists and words are also possible.

Here is a simple example that produces the image in this screenshot:

  • forward 3 right 2 will first make the turtle move 3 steps forward, and then turn the turtle 2° to the right.
  • repeat 180 [forward 3 right 2] repeats this motion 180 times to draw a circle
  • repeat 20 [repeat 180 [forward 3 right 2] right 18] draws 20 circles offset by 18° to make a flower.

This very intuitive graphical approach makes Logo an ideal language for beginners, including children.

Download

Pre-compiled jars available on the Releases page. You can also still download the old version from the XLogo website.

Note: You will need Java on your computer to run XLogo. Java 11 or Java 17 is recommended. Java 8 may also work but has scaling issues on high resolution displays. If you don't already have a JDK installed, Microsoft offers free OpenJDK downloads for Windows, Mac, and Linux.

Documentation

Extensive documentation is available from the XLogo website. Reference manuals are available in many languages. Some languages and formats may be more up-to-date than others, and some also have tutorials and other resources. I have summarized what's available in the table below.

Document English French German Italian Portuguese Spanish Esperanto
Reference Manual (online) English French German Italian Portuguese Spanish Esperanto
Reference Manual (zipped html) English French German Italian Portuguese Spanish Esperanto
Reference Manual (pdf) English French German Italian Portuguese Spanish Esperanto
Examples LogoArts French German Italian Portuguese Spanish Esperanto
XLogo Robotics English Italian Portuguese Spanish
Tutorial (pdf) French Portuguese Spanish
Tutorial (zipped html) Spanish
Introductory Course Spanish
Installation (pdf) English French German Spanish

TeX sources for each language's documentation are available on the XLogo website but have also been added to this repo, if available.

Logo Arts

Guy Walker's wonderful Logo Arts website contains many XLogo resources:

Current Status

XLogo's development ceased in 2012. I tried to contact the original author in 2022 but got no response. I migrated the Subversion repository to GitHub and started working on some improvements:

  • Fix blurry/pixelated scaling on high resolution displays
  • Make a nice looking themeable UI using FlatLaf
  • Fix bugs and improve code quality

If you want to help improve the code, check out the Developer Notes to get started.

Credits

Developers

  • Loïc Le Coq: Original Developer
  • J.B. Langston: UI upgrade and GitHub migration

Translators

  • Loïc Le Coq: French
  • Kevin Donnely, Guy Walker: English
  • Marcelo Duschkin, Alvaro Valdes Menendez: Spanish
  • El Houcine Jarad: Arabic
  • Alexandre Soares: Portugese
  • Miriam Abresch, Michael Malien: German
  • Michel Gaillard, Carlos Enrique, Carleos Artime: Esperanto
  • Justo Freire: Galician
  • Anastasios Drakopoulos: Greek
  • Marco Bascietto: Italian
  • David Arso: Catalan
  • Jozsef Varga: Hungarian

Third-party

  • FlatLaf: Swing look and feel (Apache license)
  • IntelliJ IDEA: SVG Icons (Apache license)
  • Java3D: 3D scene graph library (GPL license)
  • Jogamp: OpenGL libraries (BSD/MIT/Apache license)
  • JavaHelp: Help library (GPL license)
  • JLayer: MP3 library (LGPL license)

Packages

No packages published

Contributors 2

  •  
  •