NATURAL OBJECT ORIENTED PROGRAMMING NIKHIL NAWATHE,ALTAF MANJIYANI,PRANIT MUNGEKAR THADOMAL SHAHANI ENGINEERING COLLEGE
<ul><li>The History of Logo </li></ul><ul><li>The Evolution of Elica </li></ul><ul><li>Elica's Natural OOP </li></ul><ul><...
The History of Logo <ul><li>First Logo appeared 40 years ago </li></ul><ul><li>Oversimplified version of LISP </li></ul><u...
Family of Logo Dialects <ul><li>The most diverse programming language </li></ul>* Logo ComseD Logo Logo 3-D Logo Acornsoft...
Family of Logo Dialects - 2 Harward (PC) Logo Helios Hiragana Logo HoneyLogo HyperLogo IBM Logo Imagine JavaLogo JFLogo jL...
Family of Logo Dialects - 3 MIT Logo MIT PDP-11 Logo MonoLOGO MSWLogo MSX Logo Multi-Logo Music Logo NetLogo Object Logo O...
Logo library Graphix library Turtle library Win library Androids library Geomland library CarTurtle library The Evolution ...
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 <ul><li>One of the 160+ Logo dialects </li></ul><ul><li>Flexibility to the extreme </li></ul><ul><ul><li>ing names a...
OOP and Natural OOP <ul><li>OOP </li></ul><ul><ul><li>collection of concepts, tools and styles </li></ul></ul><ul><ul><li>...
OOP vs NOOP Example <ul><li>Problem: </li></ul><ul><li>Make class POINT </li></ul><ul><li>with fields and Y </li></ul><...
NOOP <ul><li>NOOP itself is like an evolution: </li></ul><ul><ul><li>Classes  species </li></ul></ul><ul><ul><li>Insta...
Object Creation <ul><li>Creating an object is like giving birth to a creature </li></ul><ul><li>This is a common metapho...
Creating by Assignment <ul><li>The most primitive creatures on Earth reproduce themselves by fission ( agamic reproduc...
Identification of Objects <ul><li>Two methods for identification of objects: </li></ul><ul><li>(lack of instanceOf( ), cla...
Inheritance <ul><li>Supported are single inheritance (for partheno-genesis species ), and inheritance from two parents ....
The Big Question <ul><li>If the Elica core is soooo small… </li></ul><ul><li>and a functionality like adding two numbers i...
The Answer <ul><li>Demonstrations </li></ul>
Elica Applications - 1 <ul><li>Elica-based applications for truss analysis ( used by Stevens Institute of Technology ...
Model of a steam machine implemented in OOP 3D animated model of steam machine implemented in Elica
Elica Applications - 3 <ul><li>Mathematical modelling: </li></ul><ul><ul><li>surfaces </li></ul></ul><ul><ul><li>intersec...
Creating games, animations and virtual characters in order to practice skill in software development and participation in ...
Virtual Thermodynamics Lab Module for experiments with light Interactive model of spectrophotometer Virtual Optical Lab
 
of 25

NATURAL OBJECT ORIENTED PROGRAMMING USING ELICA

ELICA USES THE FUNDAS OF NATURAL OOAD
Published on: Mar 3, 2016
Published in: Technology      Business      
Source: www.slideshare.net


Transcripts - NATURAL OBJECT ORIENTED PROGRAMMING USING ELICA

  • 1. NATURAL OBJECT ORIENTED PROGRAMMING NIKHIL NAWATHE,ALTAF MANJIYANI,PRANIT MUNGEKAR THADOMAL SHAHANI ENGINEERING COLLEGE
  • 2. <ul><li>The History of Logo </li></ul><ul><li>The Evolution of Elica </li></ul><ul><li>Elica's Natural OOP </li></ul><ul><li>Demonstrations </li></ul>T HE E VOLUTION OF A P ROGRAMMING L ANGUAGE
  • 3. The History of Logo <ul><li>First Logo appeared 40 years ago </li></ul><ul><li>Oversimplified version of LISP </li></ul><ul><li>Main target audience – students, teachers </li></ul><ul><li>Used for: </li></ul><ul><ul><li>Introduction to programming </li></ul></ul><ul><ul><li>Drawing using Turtle Graphics </li></ul></ul><ul><ul><li>Exploration and construction </li></ul></ul><ul><ul><li>Fun </li></ul></ul>
  • 4. Family of Logo Dialects <ul><li>The most diverse programming language </li></ul>* 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 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
  • 6. 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
  • 7. Logo library Graphix library Turtle library Win library Androids library Geomland library CarTurtle library The Evolution of Elica Elica 11 primitives
  • 8. Programming Entities Functions Variables 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 <ul><li>One of the 160+ Logo dialects </li></ul><ul><li>Flexibility to the extreme </li></ul><ul><ul><li>ing names and code at run-time </li></ul></ul><ul><ul><li>Dynamic modification of objects </li></ul></ul><ul><ul><li>Experimenting with different programming styles </li></ul></ul><ul><li>3D graphics, animation, modeling </li></ul><ul><li>Natural OOP </li></ul>
  • 11. OOP and Natural OOP <ul><li>OOP </li></ul><ul><ul><li>collection of concepts, tools and styles </li></ul></ul><ul><ul><li>requires changes in language syntax (C, Pascal, Logo) </li></ul></ul><ul><ul><li>complex terminology (class, instance, inherit, method…) </li></ul></ul><ul><li>Natural OOP </li></ul><ul><ul><li>extended collection of concepts, tools and styles </li></ul></ul><ul><ul><li>no changes in language syntax </li></ul></ul><ul><ul><li>no special data structures for OOP elements </li></ul></ul><ul><ul><li>no special procedures and functions to manage OOP </li></ul></ul><ul><ul><li>no new terminology </li></ul></ul>
  • 12. OOP vs NOOP Example <ul><li>Problem: </li></ul><ul><li>Make class POINT </li></ul><ul><li>with fields and Y </li></ul><ul><li>and method. </li></ul><ul><ul><li>using OOP </li></ul></ul><ul><ul><li>using NOOP </li></ul></ul>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 <ul><li>NOOP itself is like an evolution: </li></ul><ul><ul><li>Classes  species </li></ul></ul><ul><ul><li>Instances  individual creatures </li></ul></ul><ul><ul><li>Fields  characteristics </li></ul></ul><ul><ul><li>Methods  behaviour </li></ul></ul><ul><ul><li>Inheritance  genealogical relations </li></ul></ul>
  • 14. Object Creation <ul><li>Creating an object is like giving birth to a creature </li></ul><ul><li>This is a common metaphor in all OOPs </li></ul><ul><li>An creature in Nature can be born in many ways – agamic reproduction, sexual reproduction, cloning, etc </li></ul><ul><li>Most OOP support only one way of creation </li></ul>
  • 15. Creating by Assignment <ul><li>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. </li></ul>MAKE &quot;PETER :TOM
  • 16. Identification of Objects <ul><li>Two methods for identification of objects: </li></ul><ul><li>(lack of instanceOf( ), className( ), etc…) </li></ul><ul><li>A local variable containing the name of the class corresponds to creatures that know what they are , like dolphins and maybe … humans. </li></ul><ul><li>Recognition by properties is related to more primitive creatures that recognize themselves by the smell and other senses. </li></ul>
  • 17. Inheritance <ul><li>Supported are single inheritance (for partheno-genesis species ), and inheritance from two parents . There is also multiple inheritance ( adoption ) and conditional inheritance ( guardianship ). </li></ul>TO MAN :AGE :HEIGHT TO WOMAN :AGE :HEIGHT RUN :HUMAN RUN :HUMAN LOCAL &quot;SEX LOCAL &quot;SEX MAKE &quot;SEX &quot;MALE MAKE &quot;SEX &quot;FEMALE END END
  • 18. The Big Question <ul><li>If the Elica core is soooo small… </li></ul><ul><li>and a functionality like adding two numbers is not hardcoded in the system but is implemented as a user-defined library… </li></ul><ul><li>and all this Natural OOP is so human friendly that it gives hard time to the translator… </li></ul><ul><li>well, how could a system like this be used to do some REAL PROGRAMMING ??? </li></ul>
  • 19. The Answer <ul><li>Demonstrations </li></ul>
  • 20. Elica Applications - 1 <ul><li>Elica-based applications for truss analysis ( used by Stevens Institute of Technology and New York University) </li></ul>Module for truss design Module for 3D visualization of truss constructions
  • 21. Model of a steam machine implemented in OOP 3D animated model of steam machine implemented in Elica
  • 22. Elica Applications - 3 <ul><li>Mathematical modelling: </li></ul><ul><ul><li>surfaces </li></ul></ul><ul><ul><li>intersections </li></ul></ul><ul><ul><li>3D solids </li></ul></ul><ul><ul><li>Educational games </li></ul></ul><ul><ul><li>Interactive visualization of theorems </li></ul></ul>
  • 23. 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
  • 24. Virtual Thermodynamics Lab Module for experiments with light Interactive model of spectrophotometer Virtual Optical Lab

Related Documents