Thursday, October 4, 2012

-->
LOGO PROGRAMMING LANGUAGE

HISTORY
Logo was created in 1967 at Bolt, Beranek and Newman (BBN), a Cambridge, Massachusetts research firm, by Wally Feurzeig and Seymour Papert. Its intellectual roots are in artificial intelligence, mathematical logic and developmental psychology. The first four years of Logo research, development and teaching work was done at BBN.”


QUOTATIONS/ANECDOTES
"Logo is the name for a philosophy of education and a continually evolving family of programming languages that aid in its realization."
- Harold Abelson
  Apple Logo, 1982


SAMPLE HELLO WORLD CODE
TO HELLO
PRINT [Hello world]
END


DEVELOPERS
Logo was developed by Seymourt Papert (from MIT who is one of the pioneers of artificial intelligence), Daniel Bobrow (from Palto Alto Research Center), Wally Feurzeig (well-known AI researcher), and Cynthia Solomon.
The name is derived from the Greek logos meaning word, emphasizing the contrast between itself and other existing programming languages that processed numbers. This shows that Logo was developed for constructivist learning wherein individual learners construct mental models to understand the world around them.
SIGNIFICANT LANGUAGE FEATURES
1.Extensible - . Logo comes with basic operations called "primitives". Words that you define, act & look just like primitives.
2.
Working Definitions - A logo procedure gives the definition of some new word or concept. It is also a definition that works or computes.3. Definitions Have an Inside and an Outside - Outside, or title line, tells the user what the word does. The inside defines how it is done.
4.
Interactivity- LOGO is generally an interpreted one but most use them as compiled. Errors in LOGO are much informative than the usual languages. Thus, it gives programmers a big help in debugging.
5.
Modularity and Extensibility - Programs in LOGO are usually collection of small procedures.


DESIGN, SYNTAX, AND FEATURES
  • It is generally known as an interpreted language.
  • It is not case-sensitive, and also combines sequential programming language concepts especially block structures plus the functional programming language
  • Turtle and Graphics
    • Widely-known feature of Logo
    • An on-screen cursor which can receive instructions particularly on drawings and movements (linear graphics)
    • The commands are comparative to its particular position (e.g. RIGHT 90 rotate right by 90 degrees), which enables persons who use this feature to understand and imagine what they can do if they were the turtle
    • Since Logo has implementations regarding concurrency and multiple turtles, they have the support for collision detection, which is used mainly on sprites (2-D graphics integration)
    • It also supports the pen feature which can be lifted or lowered to draw basic dotted lines, dashes, or other basic figures that can be drawn when lifting and lowering is used alternatively.
  • Data and Variable Assignments
    • Three datatypes (word, list, array)
    • Two important symbols
      • Colon (:) (the contents of) variable and memory relationship
      • Doublequote (“) (the word is evaluated as itself) evaluation cases like for number (the number 2 is “2 in Logo)
      • make “x sum :y “3 is the same as x := y+3
  • The scoping is global in general but a variable may be declared as local to make it dynamically scoped.
  • Lists
    • Since Logo supports the list datatype, it supports storage of vectors. Compared to arrays, vectors are said to be “infinitely expandable.”
    • The Logo’s list is also considered as a queue (enqueue and dequeue operations) or a stack (push and pop operations)
    • List processing is more on recursion rather than iteration.
  • Control Structure Commands
    • ifelse test [do_if_true list][do_if_false list]
    • Iteration commands
      • while condition[instruction list]
      • until condition[instruction list]
      • repeat number[instruction list]
  • Loops
    • Commonly used reserved word is REPEAT 
    • REPEAT 4 [FD 20 LEFT 90] (draws a square with 20 units of measurement)
    • Loops can be nested to make the results look more magnificent




GROUP COMMENTS
Logo is mostly for educational purposes especially for kids who love to draw technologically-wise. Its simplicity can make even ordinary people understand the essence of using programming languages in a Layman’s perspective.
     -Carlo Ditan

Logo is a very fun language with easy syntax. Since it has also a Turtle module and simple syntax, it is easy to be a first course in programming. It also an exciting functional programming language which offers support for concurrency.
     -Florante Gamat

As I was reading the introduction, the part where “LOGO is a dialect of LISP”, I sort of think that LOGO would be as the same as the others: DIFFICULT. Maybe it was just a stigma that I made wherein ALL functional languages (especially dialects of LISP) are difficult to understand but NO. This language is way different from all functional programming languages. It’s really living up to its objective: “… easy to learn, easy to understand but can still cope with complex problems.” I haven’t really tried doing programs in LOGO but looking at the sample codes, it makes me want to learn it.
     -Jose Marie Cordova

Logo is used for teaching children what programming is all about. It means that it is easy to learn and programmers, who are new to it, will easily understand the language.
     -Kevin Troy Vasallo

Logo is a really good language to use for introducing computer programming to people especially the young ones. Its easy syntax and cool features would surely keep up the interest of these people in learning more about the language.
     -Gladdys Anonuevo

COMMENTS FROM OTHER PEOPLE
- an opportunity to be the teacher, not a passive learner, and to control the computer

"Logo does everything you tell it, even if it's not what you really meant!"
- immediate, visual, and non-judgmental feedback

"The turtle lets you know when you goofed."
- a chance to explore and try their own ideas

"It is easy to say "what if..." in Logo and try different things."
- an opportunity to discover concepts on their own

"Does the teacher know that if you make the turns twice as big
you get a star instead of a pentagon?"
- an opportunity to explore concepts normally taught much later

"Of course I know what a 45 degree angle is, Dad."
- a means of learning and understanding at their own pace

"I know I really understand a command when I can use it by myself and it works!"
- a chance to analyze a task and plan a set of instructions to solve it

"A program is like a recipe and you have to be really specific."
- a model for solving problems by breaking them into smaller chunks

"It is like writing an outline that helps you organize your ideas."
- a chance to succeed in areas in which they may not feel comfortable

"I never knew math could be so much fun!"
- excitement in learning

"What can I learn next?"


REFERENCES
DITAN, CARLO B.
2010-36421
Olrax

CORDOVA, JOSE MARIE C.
2010-29677
Jom

GAMAT, FLORANTE JR. A.
2010-30501
Yong

ANONUEVO, GLADDYS M.
2010-33154
pasha

VASALLO, KEVIN TROY A.
2010-33227
kevin

No comments:

Post a Comment