Evolution of Programming Languages.pdf

AadhavanHari 677 views 39 slides Jan 26, 2024
Slide 1
Slide 1 of 39
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39

About This Presentation

Evolution of Programming Languages.pdf


Slide Content

Evolution of
Programming Languages
from 1940s to 2100

History of Programmers
•Before1940s:Thefirstprogrammers
•The1940s:VonNeumann,KonardZuse&PlankalKul
•The1950s:TheFirstProgrammingLanguage
•The1960s:AnExplosioninProgramminglanguages
•The1970s:Simplicity,Abstraction,Study
•The1980s:ConsolidationandNewDirections
•The1990s:InternetandtheWeb
•The2000s:tbd

Early History: The First Programmer
•Jacquardloomofearly1800s
–Translatedcardpatternsintoclothdesigns
•CharlesBabbage’sanalyticalengine(1830s&40s)
Programswerecardswithdataandoperations
•AdaLovelace–firstprogrammer
“Theenginecanarrangeandcombineitsnumericalquantities
exactlyasiftheywerelettersoranyothergeneralsymbols;Andin
factmightbringoutitsresultsinalgebraicnotation,wereprovision
made.”

Jacquardloomofearly1800s Charles Babbage’s analytical engine (1830s & 40s)Ada Lovelace –first programmer

The 1940s: Von Neumann and Zuse
JohnVonNeumann
ledateamthatbuilt
computerswithstored
programsandacentral
processorENIAC.

Konrad Zuseand Plankalkul
KonradZusebeganworkonPlankalkul(plan
calculus),thefirstalgorithmicprogramming
language,withanaimofcreatingthetheoretical
preconditionsfortheformulationofproblems
ofageneralnature.
Sevenyearsearlier,Zusehaddevelopedand
builttheworld'sfirstbinarydigitalcomputer,
theZ1.Hecompletedthefirstfullyfunctional
program-controlledelectromechanicaldigital
computer,theZ3,in1941.
OnlytheZ4,themostsophisticatedofhis
creations,survivedWorldWarII.

Machine Code (1940’s)
•Initial computers were programmed in raw machine code.
•These were entirely numeric.
•What was wrong with using machine code? Everything!
•Poor readability
•Poor modifiability
•Expression coding was tedious
•Inherit deficiencies of hardware, e.g., no indexing or floating point
numbers

Pseudocodes (1949)
•Short Code or SHORTCODE -John Mauchly, 1949.
•Pseudocode interpreter for math problems, on Eckert
and Mauchly’s BINAC and later on UNIVAC I and II.
•Possibly the first attempt at a higher level language.
•Expressions were coded, left to right

More Pseudocodes
Speedcoding;1953-4
•ApseudocodeinterpreterformathonIBM701,IBM650.
•DevelopedbyJohnBackus
•Pseudoopsforarithmeticandmathfunctions
•Conditionalandunconditionalbranching
•Autoincrementregistersforarrayaccess
•Slowbutstilldominatedbyslownessofs/wmath
•Interpreterleftonly700wordsleftforuserprogram
LaningandZierlerSystem–1953
•ImplementedontheMITWhirlwindcomputer
•First"algebraic"compilersystem
•Subscriptedvariables,functioncalls,expressiontranslation
•Neverportedtoanyothermachine

The 1950s: The First Programming
Language
•Pseudocodes:interpretersforassemblylanguagelike
•Fortran:thefirsthigherlevelprogramminglanguage
•COBOL:hefirstbusinessorientedlanguage
•Algol:oneofthemostinfluentialprogramminglanguagesever
designed
•LISP:thefirstlanguagetodepartfromtheproceduralparadigm
•APL:AProgrammingLanguage

The 1960s: An Explosion in Programming
Languages
•Thedevelopmentofhundredsofprogramminglanguages
•PL/Idesignedin1963-4
–supposedtobeallpurpose
–combinedfeaturesofFORTRAN,COBOLandAlgol60andmore!
–translatorswereslow,hugeandunreliable
–somesayitwasaheadofitstime......
•Algol68
•SNOBOL
•Simula
•BASIC

The 1970s: Simplicity, Abstraction, Study
•Algol-W -Nicklaus Wirth and C.A.R.Hoare
–reaction against 1960s
–simplicity
•Pascal
–small, simple, efficient structures
–for teaching program
•C -1972 -Dennis Ritchie
–aims for simplicity by reducing restrictions of the type system
–allows access to underlying system
–interface with O/S -UNIX

The 1980s: Consolidation and New
Paradigms
•Ada
–USDepartmentofDefence
–EuropeanteamleadbyJeanIchbiah.(SamLomonacowasalsoontheADAteam:-)
•Functionalprogramming
–Scheme,ML,Haskell
•Logicprogramming
–Prolog
•Object-orientedprogramming
–Smalltalk,C++,Eiffel

Functional Programming
•CommonLisp:consolidationofLISPdialectsspurredpracticaluse,
asdidthedevelopmentofLispMachines.
•Scheme:asimpleandpureLISPlikelanguageusedforteaching
programming.
•Logo:Usedforteachingyoungchildrenhowtoprogram.
•ML:(MetaLanguage)astrongly-typedfunctionallanguagefirst
developedbyRobinMilnerinthe70’s
•Haskell:polymorphiclytyped,lazy,purelyfunctionallanguage.

Small talk (1972-80)
•DevelopedatXeroxPARCbyAlanKayandcolleagues(esp.Adele
Goldberg)inspiredbySimula67
•Firstcompilationin1972waswrittenonabettocomeupwith"the
mostpowerfullanguageintheworld"in"asinglepageofcode".
•In1980,Smalltalk80,auniformlyobject-orientedprogramming
environmentbecameavailableasthefirstcommercialreleaseofthe
Smalltalklanguage
•Pioneeredthegraphicaluserinterfaceeveryonenowuses
•Industrialusecontinuestothepresentday

C++ (1985)
•DevelopedatBellLabsbyStroustrup
•EvolvedfromCandSIMULA67
•Facilitiesforobject-orientedprogramming,takenpartiallyfromSIMULA
67,addedtoC
•Alsohasexceptionhandling
•Alargeandcomplexlanguage,inpartbecauseitsupportsbothprocedural
andOOprogramming
•Rapidlygrewinpopularity,alongwithOOP
•ANSIstandardapprovedinNovember,1997

Eiffel
Eiffel-arelatedlanguagethatsupportsOOP
-(DesignedbyBertrandMeyer-1992)
-Notdirectlyderivedfromanyotherlanguage
-SmallerandsimplerthanC++,butstillhasmostofthepower

1990’s: the Internet and Web
Duringthe90’s,Object-orientedlanguages(mostlyC++)
becamewidelyusedinpracticalapplications
TheInternetandWebdroveseveralphenomena:
–Addingconcurrencyandthreadstoexistinglanguages
–IncreaseduseofscriptinglanguagessuchasPerlandTcl/Tk
–Javaasanewprogramminglanguage

Java
•Developed at Sun in the early 1990s
with original goal of a language for
embedded computers
•Principals: Bill Joy, James Gosling, Mike
Sheradin, Patrick Naughton
•Original name, Oak, changed for copyright reasons
•Based on C++ but significantly simplified
•Supports onlyOOP
•Has references, but not pointers
•Includes support for applets and a form of concurrency (i.e. threads)

The future
•Inthe60’s,thedreamwasasingleall-purposelanguage
(e.g.,PL/I,Algol)
•The70sand80sdreamexpressedbyWinograd(1979)
“Justashigh-levellanguagesallowtheprogrammertoescapetheintricaciesof
themachine,higherlevelprogrammingsystemscanprovideformanipulating
complexsystems.Weneedtoshiftawayfromalgorithmsandtowardsthe
descriptionofthepropertiesofthepackagesthatwebuild.Programming
systemswillbedeclarativenotimperative”
•Willthatdreamberealised?
•Programmingisnotyetobsolete

Currently Trending Programming
Languages
ThereareseveralprogramminglanguagesthatarecommonlyusedinthefieldsofAI,ML,andCybersecurity.Herearesomeofthemostpopularones:
1.Python:PythonisoneofthemostpopularprogramminglanguagesforAIandMLdevelopmentduetoitssimplesyntaxandreadability.Itsupportsavarietyof
frameworksandlibraries,whichallowsformoreflexibilityandcreatesendlesspossibilitiesforanengineertoworkwith.SomeofthemostpopularPythonlibraries
formachinelearninginclude:sci-kitimage,OpenCV,TensorFlow,PyTorch,Keras,NumPy,NLTK,SciPy,andsci-kitlearn
123
.
2.Java:Javaisageneral-purposeprogramminglanguagethatisusedforcreatingmobile,desktop,web,andcloudapplications.ItisalsousedfordevelopingAI
systems.Javaisknownforitsscalability,security,andcross-platformcompatibility
2
.
3.R:Risaprogramminglanguagethatisusedforstatisticalcomputingandgraphics.Itiswidelyusedindataanalysis,machinelearning,andscientificresearch.R
hasalargenumberoflibrariesandpackagesthatmakeiteasytoperformcomplexstatisticalanalyses
3
.
4.Julia:Juliaisahigh-level,high-performanceprogramminglanguagethatisdesignedfornumericalandscientificcomputing.ItisusedfordevelopingAIandML
models,aswellasfordataanalysisandvisualization
3
.
5.Lisp:LispisafamilyofprogramminglanguagesthatareusedforAIandMLdevelopment.Lispisknownforitspowerfulmacrosystem,whichallowsdevelopers
toextendthelanguageitself.Lispisalsousedforsymboliccomputing,whichisatypeofcomputingthatdealswithsymbolsandexpressions
3
.
6.JavaScript:JavaScriptisaprogramminglanguagethatisusedforcreatinghighlyinteractivebrowser-basedapplications.ItisalsousedfordevelopingAIsystems.
JavaScriptisknownforitsflexibilityandeaseofuse
2
.
7.C++:C++isageneral-purposeprogramminglanguagethatisusedfordevelopingAIandMLmodels,aswellasfordevelopingoperatingsystems,systemsoftware,
andembeddedsystems.C++isknownforitsspeedandefficiency
2
.
•HerearesomePowerPointpresentationsthatyoumightfinduseful:
1.MachineLearninginCyberSecurity-Thispresentationprovidesaholisticviewofmachinelearningincybersecurityforbetterorganizationalreadiness.
2.AIandMLinCybersecurity-Thispresentationdiscussesthelimitationsofmachinelearningandissuesofexplainability,wheredeeplearningshouldneverbe
applied,andexamplesofhowtheblindapplicationofalgorithmscanleadtowrongresults.
•PleasenotethattheinformationprovidediscurrentasofJanuary2024andmaybesubjecttochange.

Comparing the performance of Mojo,
Python, and JavaScript
ComparingtheperformanceofMojo,Python,andJavaScriptinthecontextof
machinelearning.
AccordingtoaMediumarticle,PythonandMojoaretwopopularprogramming
languagesthathavebeenwidelyusedinvariousapplications,fromweb
developmenttomachinelearning.WhilebothPythonandMojosharesome
similarities,theyalsohavenotabledifferencesthatsetthemapart.Asadeveloperor
programmer,it’sessentialtounderstandthefundamentaldifferencesbetweenthese
languagessothatyoucanchoosetheonethatbestsuitsyourneeds.
AnotherMediumarticlecomparestheperformanceofJavaScriptandPythonfor
machinelearning.ThearticlestatesthatJavaScript’scomputationalperformanceis
stillmuchbetterthanPython’s.However,thematurityofthelibraries—which
oftenhaveunderlyingmoduleswritteninC—meansthatoperationsonlarge
datasetscanoffersomuchmorethansheercomputationalpower.Butthereisstilla
placeforJavaScriptinmachinelearning.

Programming Languages for Civil
Engineering
•CivilandStructuralengineeringarefieldsthatrequirealotofcomputationalpower.Learningtocodecan
helpengineersautomaterepetitivetasks,improvetheirworkflow,andincreasetheirproductivity.According
toTheComputationalEngineer,thefollowingprogramminglanguagesarecommonlyusedintheciviland
structuralengineeringindustry
1
:
1.Grasshopper:Avisualprogramminglanguagethatcanbeeasilyadoptedbycivilandstructuralengineers.It
isaplugintoaCADand3D-modellingsoftwarecalledRhinoceros.Ithasalowbartoentrybutispowerful
enoughtomanagemostofyourworkflows,includingyourRevitworkflows.
2.Dynamo:Apopularvisualprogramminglanguageforbuildingandcivilengineers.ItisapluginforAutodesk
Revitandcanbeusedtoautomaterepetitivetasksandimproveworkflows.
3.BHoM:Adatastructureandtoolsetforbuildingandarchitecturethatcanbeusedtocreatecustom
workflowsandautomatetasks.
4.C#:Ageneral-purposeprogramminglanguagethatiswidelyusedinthecivilengineeringindustry.Itisused
todevelopsoftwareapplicationsandtoolsforcivilengineeringprojects.
•Theselanguageshavebeendesignedwithcivilengineeringworkflowsinmindandofferalowerbartoentry
forcivilandstructuralengineers.Theyarealsopowerfulenoughtomanagemostofyourworkflows,
includingyourRevitworkflows.Ifyouarenewtocoding,Grasshopperisagreatfirstlanguagetolearnasit
hasaneasy-to-adoptanddebuginterface
1
.

Never Ever Ending Life History of
Programming Languages
•18 New Programming Languages to Learn in 2024 | Built In