NATURAL OBJECT ORIENTED PROGRAMMING NIKHIL NAWATHE,ALTAF MANJIYANI,PRANIT MUNGEKAR THADOMAL SHAHANI ENGINEERING COLLEGE
The History of Logo The Evolution of Elica Elica's Natural OOP Demonstrations T HE  E VOLUTION   OF   A  P ROGRAMMING  L ANGUAGE
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
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
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
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 Visual 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 StarLogo for YoYo StarLogoT StarLogo TNG SuperLogo Terrapin Logo Terrapin Graphics TGS TI Logo TinyLogo TKTSLogo TLC Logo TopLogo++ Tortue Trend Logo
Logo library Graphix library Turtle library Win library Androids library Geomland library CarTurtle library The Evolution of Elica Elica 11 primitives
Programming Entities Functions Variables Instances Libraries Operators Programs Sets Arrays Procedures Classes
What is Elica? What is Natural OOP? Concepts and features of NOOP Comparison with traditional OOP
Elica One of the 160+ Logo dialects Flexibility to the extreme ing names and code at run-time Dynamic modification of objects Experimenting with different programming styles 3D graphics, animation, modeling Natural OOP
OOP and Natural OOP OOP collection of concepts, tools and styles requires changes in language syntax (C, Pascal, Logo) complex terminology (class, instance, inherit, method…) Natural OOP extended collection of concepts, tools and styles no changes in language syntax no special data structures for OOP elements no special procedures and functions to manage OOP no new terminology
OOP vs NOOP Example Problem: Make class  POINT with fields  and  Y and method. using  OOP using  NOOP to  p oint :x :y to distance   output sqrt :x*:x+:y*:y end e nd type TPoint = class fx : integer; fy : integer; public constructor Create(x,y:integer); function Distance:real; end; constructor TPoint.Create(x,y:integer); begin fx:=x; fy:=y; end; function TPoint.Distance:real; begin Result:=Sqrt(fx*fx+fy*fy); end;
NOOP NOOP itself is like an evolution: Classes     species Instances     individual creatures Fields     characteristics Methods     behaviour Inheritance     genealogical relations
Object Creation Creating an object is like  giving birth  to a creature This is a common metaphor in all OOPs An creature in Nature can be born in many ways – agamic reproduction, sexual reproduction, cloning, etc Most OOP support only one way of creation
Creating  by  Assignment The most primitive creatures on Earth reproduce themselves by  fission  ( agamic reproduction ). Technically, this means creating a creature as an exact copy of another one. MAKE "PETER :TOM
Identification of Objects Two methods for identification of objects: (lack of instanceOf( ), className( ), etc…) A local variable containing the name of the class corresponds to  creatures that know what they are , like dolphins and maybe … humans. Recognition by properties is related to more primitive creatures that  recognize themselves by the smell  and other senses.
Inheritance Supported are single inheritance (for  partheno-genesis species ), and inheritance from  two parents . There is also multiple inheritance ( adoption ) and conditional inheritance ( guardianship ).  TO MAN :AGE :HEIGHT  TO WOMAN :AGE :HEIGHT RUN :HUMAN  RUN :HUMAN LOCAL "SEX  LOCAL "SEX MAKE "SEX "MALE  MAKE "SEX "FEMALE END  END
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 ???
The Answer Demonstrations
Elica Applications - 1 Elica-based applications for truss analysis  ( used by   Stevens Institute of Technology   and   New York University) Module for truss design Module for 3D visualization of truss constructions
Model of a steam machine implemented in OOP 3D animated model of steam machine implemented in Elica
Elica Applications -  3 Mathematical modelling: surfaces intersections 3D solids Educational games Interactive visualization of theorems
Creating games, animations and virtual characters in order to practice skill in software development and participation in projects Elica models of 3D chess figures Animation of 3D models of humans and robots
Virtual Thermodynamics Lab Module for experiments with light Interactive model of spectrophotometer Virtual Optical Lab
 

NATURAL OBJECT ORIENTED PROGRAMMING USING ELICA

  • 1.
    NATURAL OBJECT ORIENTEDPROGRAMMING NIKHIL NAWATHE,ALTAF MANJIYANI,PRANIT MUNGEKAR THADOMAL SHAHANI ENGINEERING COLLEGE
  • 2.
    The History ofLogo The Evolution of Elica Elica's Natural OOP Demonstrations T HE E VOLUTION OF A P ROGRAMMING L ANGUAGE
  • 3.
    The History ofLogo 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
  • 4.
    Family of LogoDialects 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
  • 5.
    Family of LogoDialects - 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
  • 6.
    Family of LogoDialects - 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 Visual 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 StarLogo for YoYo StarLogoT StarLogo TNG SuperLogo Terrapin Logo Terrapin Graphics TGS TI Logo TinyLogo TKTSLogo TLC Logo TopLogo++ Tortue Trend Logo
  • 7.
    Logo library Graphixlibrary Turtle library Win library Androids library Geomland library CarTurtle library The Evolution of Elica Elica 11 primitives
  • 8.
    Programming Entities FunctionsVariables Instances Libraries Operators Programs Sets Arrays Procedures Classes
  • 9.
    What is Elica?What is Natural OOP? Concepts and features of NOOP Comparison with traditional OOP
  • 10.
    Elica One ofthe 160+ Logo dialects Flexibility to the extreme ing names and code at run-time Dynamic modification of objects Experimenting with different programming styles 3D graphics, animation, modeling Natural OOP
  • 11.
    OOP and NaturalOOP OOP collection of concepts, tools and styles requires changes in language syntax (C, Pascal, Logo) complex terminology (class, instance, inherit, method…) Natural OOP extended collection of concepts, tools and styles no changes in language syntax no special data structures for OOP elements no special procedures and functions to manage OOP no new terminology
  • 12.
    OOP vs NOOPExample Problem: Make class POINT with fields and Y and method. using OOP using NOOP to p oint :x :y to distance output sqrt :x*:x+:y*:y end e nd type TPoint = class fx : integer; fy : integer; public constructor Create(x,y:integer); function Distance:real; end; constructor TPoint.Create(x,y:integer); begin fx:=x; fy:=y; end; function TPoint.Distance:real; begin Result:=Sqrt(fx*fx+fy*fy); end;
  • 13.
    NOOP NOOP itselfis like an evolution: Classes  species Instances  individual creatures Fields  characteristics Methods  behaviour Inheritance  genealogical relations
  • 14.
    Object Creation Creatingan object is like giving birth to a creature This is a common metaphor in all OOPs An creature in Nature can be born in many ways – agamic reproduction, sexual reproduction, cloning, etc Most OOP support only one way of creation
  • 15.
    Creating by Assignment The most primitive creatures on Earth reproduce themselves by fission ( agamic reproduction ). Technically, this means creating a creature as an exact copy of another one. MAKE "PETER :TOM
  • 16.
    Identification of ObjectsTwo methods for identification of objects: (lack of instanceOf( ), className( ), etc…) A local variable containing the name of the class corresponds to creatures that know what they are , like dolphins and maybe … humans. Recognition by properties is related to more primitive creatures that recognize themselves by the smell and other senses.
  • 17.
    Inheritance Supported aresingle inheritance (for partheno-genesis species ), and inheritance from two parents . There is also multiple inheritance ( adoption ) and conditional inheritance ( guardianship ). TO MAN :AGE :HEIGHT TO WOMAN :AGE :HEIGHT RUN :HUMAN RUN :HUMAN LOCAL "SEX LOCAL "SEX MAKE "SEX "MALE MAKE "SEX "FEMALE END END
  • 18.
    The Big QuestionIf 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 ???
  • 19.
  • 20.
    Elica Applications -1 Elica-based applications for truss analysis ( used by Stevens Institute of Technology and New York University) Module for truss design Module for 3D visualization of truss constructions
  • 21.
    Model of asteam machine implemented in OOP 3D animated model of steam machine implemented in Elica
  • 22.
    Elica Applications - 3 Mathematical modelling: surfaces intersections 3D solids Educational games Interactive visualization of theorems
  • 23.
    Creating games, animationsand virtual characters in order to practice skill in software development and participation in projects Elica models of 3D chess figures Animation of 3D models of humans and robots
  • 24.
    Virtual Thermodynamics LabModule for experiments with light Interactive model of spectrophotometer Virtual Optical Lab
  • 25.