1 / 26

April 4, 2006 – Sofia, Bulgaria

Pavel Boytchev. April 4, 2006 – Sofia, Bulgaria. About this presentation. The History of Logo The Evolution of Elica Squeak and Elica Demonstrations. The History of Logo. The History of Logo. First Logo appeared 40 years ago Oversimplified version of LISP

Rita
Download Presentation

April 4, 2006 – Sofia, Bulgaria

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pavel Boytchev April 4, 2006 – Sofia, Bulgaria

  2. About this presentation • The History of Logo • The Evolution of Elica • Squeak and Elica • Demonstrations

  3. The History of Logo

  4. The History of Logo • First Logo appeared 40 years ago • Oversimplified version of LISP • Main target audience – students, teachers • Used for: • Introduction to programming • Drawing using Turtle Graphics • Exploration and construction • Fun

  5. Family of Logo Dialects • The most diverse programming language *Logo ComseD Logo Logo 3-D Logo Acornsoft Logo ACSLogo AJLogo Amiga Logo Apple Logo Apple Logo II Apple Sprite Logo ARLOGO Atari Logo aUCBLogo BBN Logo BBN PDP-10 Logo Berkeley Logo COCO Logo Comenius Logo Commodore Logo Cricket Logo for YoYo DFP Logo DL Logo Dolittle DR Logo Drape E-Slate Logo Edinburgh Logo Elica ExperLogo FMSLogo Fujitsu FM-8 Logo Galapago General Turtle 2500 Geomland Ghost GLogo Graphic Logo

  6. Family of Logo Dialects - 2 Harward (PC) Logo Helios Hiragana Logo HoneyLogo HyperLogo IBM Logo Imagine JavaLogo JFLogo jLogo Krell Logo KTurtle Ladybug LCSI Logo LEGO Logo LGS LGSW Lhogho Liogo LLOGO Logo Logo.Net Logo fuer den PC Logo in Scheme Logo Graphico Logo Learner Logo nyelv Logo PLUS Logo Turtle Graphics Logo++ Logo-in-Scheme Logo3D Logob1 Logob2 LogoChip Logo LogoS Logotron LogoWriter LSL Logo LSRHS Logo LXLogo Mach Turtle Logo MacLogo MacStarLogo MegaLogo Microworlds Microworlds Ex Microworlds Ex Robotics Microworlds JR Microworlds Pro Mini Logo

  7. Family of Logo Dialects - 3 MIT Logo MIT PDP-11 Logo MonoLOGO MSWLogo MSX Logo Multi-Logo Music Logo NetLogo Object Logo Open Logo OpenStarLogo Palm Logo Pascal Logo PLOGO PC Logo PCW Logo PGS PIC Logo P_Logo Papy Logo PowerLOGO PowerMath Logo ProLOGO Pure Golo PyLogo Quick Logo QLogo Rabbit Logo rLogo RLS RM Nimbus Logo Scheme Logo Screen Turtle 2 SeeLogo SharpLOGO #Logo Sinclair Logo SmartLOGO Sprite Logo StarLogo StarLogo for YoYo StarLogoT StarLogo TNG SuperLogo Terrapin Logo Terrapin Graphics TGS TI Logo TinyLogo TKTSLogo TLC Logo TopLogo++ Tortue Trend Logo Turtle TurtleTracks TurtleTracks.net UCBLogo Visual Logo VLogo VRMath Waterloo Logo Web Turtle Win-Logo WinLogo XLogo XLogo xLogo Yellow Brick Logo YoYo ZLogo

  8. Logo Family • About 160 dialects • Incompatible with each other • Designed to experiment with various ideas and techniques • music and graphics • parallel processes • object-oriented programming • 10 dialects developed in Bulgaria

  9. Elica

  10. Elica Devolution Logo system functions lib lib system procedures system operators lib lib lib lib lib lib reserved words OOP syntax lib lib lib complex data lib lib lib

  11. Elica Evolution Turtle library No need of OOP syntax complex data library support Win library Graphix library Androids library Elica11 primitives Logo library Geomland library CarTurtle library

  12. Programming Entities Sets Programs Procedures Arrays Variables Functions Classes Libraries Instances Operators

  13. Elica Features • Language and IDE • Small core extended by libraries • Flexibility to the extreme • Composing names and code at run-time • Dynamic modification of objects • Experimenting with different programming styles • 3D graphics, animation, modeling • Natural OOP • Microworlds

  14. Squeak and Elica

  15. Similar or Different • Developed independently • Goal was to fight limitation of nearby programming languages • Some surprising similarities in technical details, programming ideas and solutions • Not brothers, but definitely not strangers

  16. Squeak OOP & Elica NOOP Object subclass: #Point instanceVariableNames: 'x y' classVariableNames: '' poolDictionaries: '' category: 'Elica-Sample‘ Point >> x: xNumber y: yNumber x := xNumber. y := yNumber. Point >> distance ^ (x squared + y squared) sqrt a := Point new x: 10 y: 30. b := Point new x: -30 y: 30. a distance printString. b distance printString. to point :x :yto distanceoutput sqrt :x*:x+:y*:y end end make "a point 10 30 make "b point -30 30 print a.distance print b.distance

  17. Squeak and Elica • Syntax similarities • List of items: (1 2 3) and [1 2 3] • Blocks of program code: [ stat1 stat2 …] • Several ways to express the same idea • More natural statements (get rid of extra symbols) • Common language features • Typeless variables • Using code as data: a := [:x | x + 1] • Heterogeneous collections • OOP (pure in Squeak, NOOP in Elica) • No capsulation • No access limitation and private fields

  18. Squeak and Elica • Internals • Byte-code, GC, VM • Most (or all) sources are available • Small core, enriched by user-definable libraries • Implementation • Execute a piece of code • Relatively slow

  19. Squeak and Elica • Usage • Free to download and use • Used for exploration • Language is a medium to express thoughts • Suitable for children, students, teachers, non-professionals and professional researchers • Brings modern technology to beginners (OOP, multimedia, etc.) • Both are rather poetic environments

  20. Demonstrations

  21. Exploring Other Languages • Because of flexibility Elica users can express their thoughts in various ways • Using Elica to get a taste of • Logo • Lisp • Forth • Prolog • Squeak • Functional machines • Boxer • Assembler • Custom languages

  22. Elica Flavors • seeElicaSqueak-1.eli (function-variable) • seeElicaSqueak-2.eli (copyFrom: to: at:) • see ElicaForth.eli (postfix notation) • see ElicaProlog.eli (knowledgebase, NL) • see ElicaLisp-1.eli (simple CAR-CDR) • see ElicaLisp-2.eli (functional programming) • see NorthPole.eli (custom language)

  23. Error Inspector • Custom error reporting • Error handlers generate XML on-the-fly • Shows precise error position, error history • Explains the error see ElicaError.eli

  24. Elica Help & Examples • Elica Museum • Five flying turtles • Towers of Hanoi • Urbanizing Turtleland • Showing all examples • Other examples • Hoolahoop (demos 2, 7 and 8) • Pair of eyes (demo 2) • Ghost stories (demo 13) • Androids

  25. Questions?

  26. The End

More Related