THE EVOLUTION OF A PROGRAMMING LANGUAGE - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

THE EVOLUTION OF A PROGRAMMING LANGUAGE

Description:

Ghost. GLogo. Graphic Logo. Family of Logo Dialects - 2. Harward ... Other examples. Pair of eyes (demo 2) Ghost stories (demo 13) Androids. Questions? The End ... – PowerPoint PPT presentation

Number of Views:244
Avg rating:3.0/5.0
Slides: 27
Provided by: pavelbo
Category:

less

Transcript and Presenter's Notes

Title: THE EVOLUTION OF A PROGRAMMING LANGUAGE


1
THE EVOLUTION OF A PROGRAMMING LANGUAGE
THE EVOLUTION OF A PROGRAMMING LANGUAGE
Pavel Boytchev IT Department, FMI, Sofia
University
July, 2006 Sofia, Bulgaria
2
About this presentation
  • The History of Logo
  • The Evolution of Elica
  • Elica and other programming languages
  • Elica's Natural OOP

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

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-i
n-Scheme Logo3D Logob1 Logob2
LogoChip Logo LogoS Logotron LogoWriter LSL
Logo LSRHS Logo LXLogo Mach Turtle
Logo MacLogo MacStarLogo MegaLogo Microworlds Micr
oworlds 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
Turtle TurtleTracks TurtleTracks.net UCBLogo Visua
l Logo VLogo VRMath Waterloo Logo Web
Turtle Win-Logo WinLogo XLogo XLogo xLogo Yellow
Brick Logo YoYo ZLogo
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 StarL
ogo for YoYo StarLogoT StarLogo
TNG SuperLogo Terrapin Logo Terrapin
Graphics TGS TI Logo TinyLogo TKTSLogo TLC
Logo TopLogo Tortue Trend Logo
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
The Evolution of 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
complex data
lib
lib
lib
lib
11
Elica Evolution
Turtle library
Win library
Graphix library
Androids library
Elica11 primitives
Logo library
Geomland library
CarTurtle library
12
Programming Entities
Programs
Sets
Procedures
Functions
Variables
Arrays
Classes
Instances
Libraries
Operators
13
What is ?
  • Example code
  • PRINT 35
  • What is ?
  • is used as an infix operator
  • but is defined as a function
  • but it is actually a method of the object Logo
  • apparently, it is an instance by itself, having
    fields to determine properties like priority
  • and is stored as a variable

14
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

15
Elica andOther Programming Languages
16
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

17
Elica Flavors
  • see ElicaSqueak-1.eli (function-variable)
  • see ElicaSqueak-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 ElicaError.eli (ASM, Boxer, NL)

18
Elicas Natural OOP
19
OOP and Natural OOP
  • OOP
  • Collection of concepts, tools and styles
  • Requires changes in the language syntax
  • Complex terminology
  • Natural OOP
  • Enlarged collection of concepts and styles
  • No changes in the language
  • No new terminology

20
NOOP Concepts
  • No specialized data structures for OOP elements.
  • No special commands and functions to manage OOP
    elements.
  • Every variable is local to another variable,
    except for a system defined root variable.
  • Procedure-zombies

21
NOOP Features
  • Classes and instances
  • Inherited objects
  • Polymorphism
  • Multiple parents
  • Real-time class/instance modification
  • Complete application of the evolutionary metaphor
  • OOP-ness is encoded in user's mind, not in the
    program

22
OOP vs NOOP
  • program Project1
  • type
  • TPoint class
  • fx integer
  • fy integer
  • public
  • constructor Create(x,yinteger)
  • function Distancereal
  • end
  • constructor TPoint.Create(x,yinteger)
  • begin
  • fxx
  • fyy
  • end
  • function TPoint.Distancereal
  • begin
  • Create the class POINT with fields X and Y, and
    method Distance. Create instances A and B. Use
    their Distance-s.
  • using Delphi OOP
  • using Elica NOOP

to point x yto distance output sqrt
xxyy end end
make "a point 10 30 make "b point -30 30 print
a.distance print b.distance
23
The Big Question
  • If the Elica core is soooo small
  • and a functionality like adding two numbers is
    not hardcoded in the system but is implemented as
    a user-defined library
  • and all this Natural OOP is so human friendly
    that it gives hard time to the translator
  • well, how could a system like this be used to do
    some REAL PROGRAMMING ???

24
The Answer
  • Elica Museum
  • Five flying turtles
  • Urbanizing Turtleland
  • Other examples
  • Pair of eyes (demo 2)
  • Ghost stories (demo 13)
  • Androids

25
Questions?
26
The End
Write a Comment
User Comments (0)
About PowerShow.com