PyoLogo: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
== PyoLogo ==
== PyoLogo ==


'''PyoLogo''' [pie-o-logo] or '''PYthon Open Logo''' is an implementation of the Logo programing environment created on top of Python. It grew out of Arnan (Roger) Sipitakiat's thesis project at the MIT Media Laboratory. PyoLogo consists of a casual Logo interpreter and a simple IDE.
'''PyoLogo''' [pie-o-logo] or '''PYthon Open Logo''' is an implementation of the Logo programing environment created on top of Python. It grew out of [http://www.media.mit.edu/~arnans/ Arnan (Roger) Sipitakiat's] thesis project at the MIT Media Laboratory. PyoLogo consists of a casual Logo interpreter and a simple IDE.


[[Image:screenshot01.jpg|thumb|right]] [[Image:screenshot02.jpg|thumb|right]] [[Image:screenshot03.jpg|thumb|right]]
[[Image:screenshot01.jpg|thumb|right]] [[Image:screenshot02.jpg|thumb|right]] [[Image:screenshot03.jpg|thumb|right]]
Line 35: Line 35:
There are some non-traditional features built into PyoLogo for the thesis work form which it was created. Here are some that could perhaps be useful.
There are some non-traditional features built into PyoLogo for the thesis work form which it was created. Here are some that could perhaps be useful.


* Robotics. PyoLogo can receive sensor input and control actuators via the GoGo Board. Since OLPC will have a sensor input through its microphone jack, this feature can be adapted to make use of this possibility.
* '''Robotics'''. PyoLogo can receive sensor input and control actuators via the [http://www.gogoboard.org GoGo Board]. Since OLPC will have a sensor input through its microphone jack, this feature can be adapted to make use of this possibility.
* Line objects. These are slider-like objects that can be used to track a turtle's position or visualize a sensor value.
* '''Line objects'''. These are slider-like objects that can be used to track a turtle's position or visualize a sensor value.
* Variable history. Every variable keeps a record of its previous values. It can be used to calculate the rate of a variable (i.e. position -> speed) or for debugging purposes.
* '''Variable history'''. Every variable keeps a record of its previous values. It can be used to calculate the rate of a variable (i.e. position -> speed) or for debugging purposes.

Revision as of 23:57, 10 January 2007

PyoLogo [pie-o-logo] or PYthon Open Logo is an implementation of the Logo programing environment created on top of Python. It grew out of Arnan (Roger) Sipitakiat's thesis project at the MIT Media Laboratory. PyoLogo consists of a casual Logo interpreter and a simple IDE.

Screenshot01.jpg
Screenshot02.jpg
Screenshot03.jpg

Current Status

Since PyoLogo is currently thesis software, it is far from being a complete product. Here is a list of things it can and cannot do.

Available features

  • Logo Primitives. Supports a subset of Logo primitives. Download the command list
    • Most of the Turtle Geometry (drawing) primitives are available.
    • List and list manipulation commands
    • Common control flow. If, ifelse, repeat, etc
    • Variables. Using the 'make' command and some other alternatives
    • Mathematical operations. sin, cos, tan, sqrt, etc
  • Supports multiple procedures with parameter passing and procedure output
  • Multi-threaded. I.e. the 'launch' and 'forever' commands creates a new background process
  • Support turtle shapes

Issues and missing items

  • Performance. PyoLogo currently runs very slowly on OLPC machines. This is based on the A test boards
  • Still some UI issues under Linux
  • Bugs are plentiful. Minimal error checking have been implemented into the Logo interpreter
  • Error reporting. Errors in the Logo programs are not well reported. This makes it difficult for the user to debug their Logo program
  • No multimedia support. No sound, no video, no text box
  • No UI widgets. No buttons, checkboxes
  • No multiple page support

Thesis Features

There are some non-traditional features built into PyoLogo for the thesis work form which it was created. Here are some that could perhaps be useful.

  • Robotics. PyoLogo can receive sensor input and control actuators via the GoGo Board. Since OLPC will have a sensor input through its microphone jack, this feature can be adapted to make use of this possibility.
  • Line objects. These are slider-like objects that can be used to track a turtle's position or visualize a sensor value.
  • Variable history. Every variable keeps a record of its previous values. It can be used to calculate the rate of a variable (i.e. position -> speed) or for debugging purposes.