Logo (programming language)

Logo was developed by Seymour Papert education -oriented functional programming language from the 1960s. As an interpreted language was Logo to learn as easily, but had a time for the home computer, as this language was the most widely used, very high efficiency, thanks to the dynamic lists from Lisp, user-defined and recursively callable functions and some other elements. Nevertheless, the programming could not like to impose on others first " beginner programming languages ​​" such as BASIC, whatever it was, that it was appropriate for children developed and therefore underestimated by many.

For that time very advanced items such as a dynamic data type recognition ensured also for speed disadvantages. In addition, the philosophy of language contradicted the then-emerging concept of structured programming. Loops are usually only about recursion or lists embedded program parts realized. Recursion was often regarded as difficult to read and requires a lot of memory and computation time. A data embedded in and thus at runtime variable code was considered a recipe for unpredictable program properties and in multi-user environments (and therefore also in networks) as a security problem.

In modern programming languages ​​such as Logo Writer or Lingo, for example, the possibilities of this programming find, however, again - partly in the form of objects.

Turtle Graphics

Her best-known feature is turtle graphics, in which one or more virtual turtles can move across the screen, which shall go, if necessary, a colored line behind him. These lines can then be created a drawing.

Turtle Graphics is ideal for two-dimensional geometrical drawings and fractal curves of the type of dragon curve or the Hilbert curve.

The Koch Snowflake

A more complex example with circularly arranged squares

The first image is, for example - but without the color - produced by the following program:

To n_eck: ne: sz; Defines a new function n_eck with two parameters      repeat: ne [; Repeats the following code block: ne times          rt 360 /: ne; Rotates the Turtle by an angle of 360 ° /: ne to the right          fd: sz; Moves the turtle to sz forward and draws a line here      ] end to mn_eck: ne: sz; Defines a new function mn_eck with two parameters      repeat: ne [; Repeats the following code block: ne times          rt 360 /: ne; Rotates the Turtle by an angle of 360 ° /: ne degree          n_eck: ne: sz; Performs n_eck and painted as the defined above n_eck      ] end mn_eck 36 20; Performs mn_eck and painted as the defined above mn_eck By calling n_eck with a large parameter: ne gives the impression of a circle. mn_eck rotates the Turtle often a little, and then draws a circle, giving the impression of a large circle is formed, which in turn contains a small circles.

Logo and Lisp

The syntax of Logo is based on the Lisp, a 1958 MIT incurred, list-based programming language family. Typical of Lisp is the bracketing of all expressions. This was omitted in logo. In a direct comparison on the basis of a program to calculate the factorial of the similarity of the two languages ​​is visible:

In Logo operators are used in infix notation, as well as return values ​​must be set explicitly with output. If one uses the available in Logo Contest by prefix notation (n * m corresponds, for example PRODUCT nm) and the optional bracketing, the two codes are even more similar.

Extended Command Set in MSWLogo

In addition to the standard command set MSWLogo offer newer versions of extended commands to generate three-dimensional representations.