0% found this document useful (0 votes)
126 views5 pages

High-Level Programming Language - Wikipedia, The Free Encyclopedia

good

Uploaded by

John
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
126 views5 pages

High-Level Programming Language - Wikipedia, The Free Encyclopedia

good

Uploaded by

John
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

4/29/2015

HighlevelprogramminglanguageWikipedia,thefreeencyclopedia

Highlevelprogramminglanguage
FromWikipedia,thefreeencyclopedia

Incomputerscience,ahighlevelprogramminglanguageisaprogramminglanguagewithstrong
abstractionfromthedetailsofthecomputer.Incomparisontolowlevelprogramminglanguages,itmay
usenaturallanguageelements,beeasiertouse,ormayautomate(orevenhideentirely)significantareasof
computingsystems(e.g.memorymanagement),makingtheprocessofdevelopingaprogramsimplerand
moreunderstandablerelativetoalowerlevellanguage.Theamountofabstractionprovideddefineshow
"highlevel"aprogramminglanguageis.[1]
Inthe1960s,highlevelprogramminglanguagesusingacompilerwerecommonlycalledautocodes.[2]
ExamplesofautocodesareCOBOLandFortran.[3]
ThefirsthighlevelprogramminglanguagedesignedforcomputerswasPlankalkl,createdbyKonrad
Zuse.[4]However,itwasnotimplementedinhistime,andhisoriginalcontributionswere(duetoWorld
WarII)largelyisolatedfromotherdevelopments,althoughitinfluencedHeinzRutishauser'slanguage
"Superplan"(andtosomedegreealsoAlgol).ThefirstreallywidespreadhighlevellanguagewasFortran,a
machineindependentdevelopmentofIBM'searlierAutocodesystems.Algol,definedin1958and1960,by
committeesofEuropeanandAmericancomputerscientists,introducedrecursionaswellasnestedfunctions
underlexicalscope.Itwasalsothefirstlanguagewithacleardistinctionbetweenvalueandname
parametersandtheircorrespondingsemantics.[5]Algolalsointroducedseveralstructuredprogramming
concepts,suchasthewhiledoandifthenelseconstructsanditssyntaxwasthefirsttobedescribedbya
formalmethod,calledBNF,forBackusNaurform.DuringroughlythesameperiodCobolintroduced
records(alsocalledstructs)andLispintroducedafullygenerallambdaabstractioninaprogramming
languageforthefirsttime.

Contents
1Features
2Abstractionpenalty
3Relativemeaning
4Executionmodels
5Highlevellanguagecomputerarchitecture
6Seealso
7References
8Externallinks

Features
"Highlevellanguage"referstothehigherlevelofabstractionfrommachinelanguage.Ratherthandealing
withregisters,memoryaddressesandcallstacks,highlevellanguagesdealwithvariables,arrays,objects,
complexarithmeticorbooleanexpressions,subroutinesandfunctions,loops,threads,locks,andother
abstractcomputerscienceconcepts,withafocusonusabilityoveroptimalprogramefficiency.Unlikelow
http://en.wikipedia.org/wiki/Highlevel_programming_language

1/5

4/29/2015

HighlevelprogramminglanguageWikipedia,thefreeencyclopedia

levelassemblylanguages,highlevellanguageshavefew,ifany,languageelementsthattranslatedirectly
intoamachine'snativeopcodes.Otherfeatures,suchasstringhandlingroutines,objectorientedlanguage
features,andfileinput/output,mayalsobepresent.

Abstractionpenalty
Whilehighlevellanguagesareintendedtomakecomplexprogrammingsimpler,lowlevellanguagesoften
producemoreefficientcode.Abstractionpenaltyistheborderthatpreventshighlevelprogramming
techniquesfrombeingappliedinsituationswherecomputationalresourcesarelimited.Highlevel
programmingexhibitsfeatureslikemoregenericdatastructures,runtimeinterpretation,andintermediate
codefileswhichoftenresultinslowerexecutionspeed,highermemoryconsumption,andlargerbinary
programsize.[6][7][8]Forthisreason,codewhichneedstorunparticularlyquicklyandefficientlymay
requiretheuseofalowerlevellanguage,evenifahigherlevellanguagewouldmakethecodingeasier.In
manycases,criticalportionsofaprogrammostlyinahighlevellanguagecanbehandcodedinassembly
language,leadingtoamuchfasterormoreefficientoptimisedprogram.
However,withthegrowingcomplexityofmodernmicroprocessorarchitectures,welldesignedcompilers
forhighlevellanguagesfrequentlyproducecodecomparableinefficiencytowhatmostlowlevel
programmerscanproducebyhand,andthehigherabstractionmayallowformorepowerfultechniques
providingbetteroverallresultsthantheirlowlevelcounterpartsinparticularsettings.[9]Highlevel
languagesaredesignedindependentofstructureofaspecificcomputer.Thisfacilitatesexecutingaprogram
writteninsuchalanguageondifferentcomputers.

Relativemeaning
ExamplesofpopularhighlevelprogramminglanguagestodaymayincludePython,VisualBasic,Delphi,
Perl,PHP,ECMAScript,Rubyandmanyothers.
Thetermshighlevelandlowlevelareinherentlyrelative.Somedecadesago,theClanguage,andsimilar
languages,weremostoftenconsidered"highlevel",asitsupportedconceptssuchasexpressionevaluation,
parameterisedrecursivefunctions,anddatatypesandstructures,whileassemblylanguagewasconsidered
"lowlevel".Today,manyprogrammersmightrefertoCaslowlevel,asitlacksalargeruntimesystem(no
garbagecollection,etc.),basicallysupportsonlyscalaroperations,andprovidesdirectmemoryaddressing.
It,therefore,readilyblendswithassemblylanguageandthemachinelevelofCPUsandmicrocontrollers.
Assemblylanguagemayitselfberegardedasahigherlevel(butoftenstillonetooneifusedwithout
macros)representationofmachinecode,asitsupportsconceptssuchasconstantsand(limited)expressions,
sometimesevenvariables,procedures,anddatastructures.Machinecode,initsturn,isinherentlyata
slightlyhigherlevelthanthemicrocodeormicrooperationsusedinternallyinmanyprocessors.

Executionmodels
Therearethreegeneralmodelsofexecutionformodernhighlevellanguages:
Interpreted
Interpretedlanguagesarereadandthenexecuteddirectly,withnocompilationstage.Aprogram
calledaninterpreterreadseachprogramstatementfollowingtheprogramflow,decideswhattodo,
http://en.wikipedia.org/wiki/Highlevel_programming_language

2/5

4/29/2015

HighlevelprogramminglanguageWikipedia,thefreeencyclopedia

anddoesit.Ahybridofaninterpreterandacompilerwillcompilethestatementintomachinecode
andexecutethatthemachinecodeisthendiscarded,tobeinterpretedanewifthelineisexecuted
again.Interpretersarecommonlythesimplestimplementations,comparedtotheothertwovariants
listedhere.
Compiled
Compiledlanguagesaretransformedintoanexecutableformbeforerunning.Therearetwotypesof
compilation:
Machinecodegeneration
Somecompilerscompilesourcecodedirectlyintomachinecode.Thisistheoriginalmodeof
compilation,andlanguagesthataredirectlyandcompletelytransformedtomachinenative
codeinthiswaymaybecalled"trulycompiled"languages.Seeassemblylanguage.
Intermediaterepresentations
Whenalanguageiscompiledtoanintermediaterepresentation,thatrepresentationcanbe
optimizedorsavedforlaterexecutionwithouttheneedtorereadthesourcefile.Whenthe
intermediaterepresentationissaved,itisoftenrepresentedasbytecode.Theintermediate
representationmustthenbeinterpretedorfurthercompiledtoexecuteit.Virtualmachinesthat
executebytecodedirectlyortransformitfurtherintomachinecodehaveblurredtheonceclear
distinctionbetweenintermediaterepresentationsandtrulycompiledlanguages.
TranslatedorTranscompiled
Alanguagemaybetranslatedintoalowerlevelprogramminglanguageforwhichnativecode
compilersarealreadywidelyavailable.TheCprogramminglanguageisacommontargetforsuch
translators.SeeChickenSchemeandtheEiffelasexamples.Specifically,thegeneratedCandC++
codecanbeseen(asgeneratedfromtheEiffelprogramminglanguagewhenusingtheEiffelStudio
IDE)intheEIFGENsdirectoryofanycompiledEiffelproject.InEiffel,the"Translated"processis
referredtoasTranscompilingorTranscompiled,andtheEiffelcompilerasaTranscompiler.
Notethatlanguagesarenotstrictly"interpreted"languagesor"compiled"languages.Rather,language
implementationsuseinterpretationorcompilation.Forexample,Algol60andFortranhavebothbeen
interpreted(eventhoughtheyweremoretypicallycompiled).Similarly,Javashowsthedifficultyoftrying
toapplytheselabelstolanguages,ratherthantoimplementationsJavaiscompiledtobytecodeandthe
bytecodeissubsequentlyexecutedbyeitherinterpretation(inaJVM)orcompilation(typicallywithajust
intimecompilersuchasHotSpot,againinaJVM).Moreover,compilation,transcompiling,and
interpretationarenotstrictlylimitedjustadescriptionofthecompilerartifact(binaryexecutableorIL
assembly).

Highlevellanguagecomputerarchitecture
Alternatively,itispossibleforahighlevellanguagetobedirectlyimplementedbyacomputerthe
computerdirectlyexecutestheHLLcode.Thisisknownasahighlevellanguagecomputerarchitecture
thecomputerarchitectureisdesignedtobetargetedbyaspecifichighlevellanguage.ApureHLLCAin
factlacksanassembler,havingonlyacompiler,withmachinecodesimplybeingabytecoderepresentation
ofaHLLprogram.
HLLCAsareintuitivelyappealing,andhavehadoccasionalpopularityovertheyears,buthavebeenvery
minorcomparedtogeneralpurposecomputersthatarenotadaptedtoanyparticularlanguage.HLLCAs
datetotheBurroughslargesystems(1961),whichwasdesignedforALGOL(1960),andthemostwell
http://en.wikipedia.org/wiki/Highlevel_programming_language

3/5

4/29/2015

HighlevelprogramminglanguageWikipedia,thefreeencyclopedia

knownHLLCAsaretheLispmachinesofthe1980s(forLisp,1959).AtpresentthemostpopularHLLCAs
areJavaprocessors,forJava(1995),andtheseareaqualifiedsuccess,beingusedforcertainapplications.

Seealso
Abstraction(computerscience)
Generationallistofprogramminglanguages
Lowlevelprogramminglanguages
Veryhighlevelprogramminglanguages
Categoricallistofprogramminglanguages

References
1. HThreadsRDGlossary(http://www.ittc.ku.edu/hybridthreads/glossary/index.php)
2. London,Keith(1968)."4,Programming".IntroductiontoComputers.24RussellSquareLondonWC1:Faber
andFaberLimited.p.184.ISBN0571085938."The'high'levelprogramminglanguagesareoftencalled
autocodesandtheprocessorprogram,acompiler."
3. London,Keith(1968)."4,Programming".IntroductiontoComputers.24RussellSquareLondonWC1:Faber
andFaberLimited.p.186.ISBN0571085938."Twohighlevelprogramminglanguageswhichcanbeusedhere
asexamplestoillustratethestructureandpurposeofautocodesareCOBOL(CommonBusinessOriented
Language)andFORTRAN(FormularTranslation)."
4. Giloi,Wolfgang,K.(1997)."KonradZuse'sPlankalkl:TheFirstHighLevel"nonvonNeumann"Programming
Language".IEEEAnnalsoftheHistoryofComputing,vol.19,no.2,pp.1724,AprilJune,1997.(abstract)
(http://doi.ieeecomputersociety.org/10.1109/85.586068)
5. Althoughitlackedanotionofreferenceparameters,whichcouldbeaprobleminsomesituations.Several
successors,includingAlgolW,Algol68,Simula,Pascal,ModulaandAdathereforeincludedreferenceparameters
(TherelatedClanguagefamilyinsteadallowedaddressesasvalueparameters).
6. SuranaP(2006)."MetaCompilationofLanguageAbstractions."(ftp://lispnyc.org/meetingassets/200702
13_pinku/SuranaThesis.pdf)(PDF).Retrieved20080317.
7. Kuketayev."TheDataAbstractionPenalty(DAP)BenchmarkforSmallObjectsinJava."
(http://www.adtmag.com/joop/article.aspx?id=4597).Retrieved20080317.
8. ChatzigeorgiouStephanides(2002)."EvaluatingPerformanceandPowerOfObjectOrientedVs.Procedural
ProgrammingLanguages".InBliebergerStrohmeier.Proceedings7thInternationalConferenceonReliable
SoftwareTechnologiesAdaEurope'2002.Springer.p.367.
9. ManuelCarro,JosF.Morales,HenkL.Muller,G.Puebla,M.Hermenegildo(2006)."Proceedingsofthe2006
internationalconferenceonCompilers,architectureandsynthesisforembeddedsystems"
(http://www.clip.dia.fi.upm.es/papers/carro06:stream_interpreter_cases.pdf)(PDF).ACM.|chapter=ignored
(help)

Externallinks
http://c2.com/cgi/wiki?HighLevelLanguageTheWikiWikiWeb'sarticleonhighlevelprogramming
languages
Retrievedfrom"http://en.wikipedia.org/w/index.php?title=High
level_programming_language&oldid=657272949"
Categories: Programminglanguageclassification
http://en.wikipedia.org/wiki/Highlevel_programming_language

4/5

4/29/2015

HighlevelprogramminglanguageWikipedia,thefreeencyclopedia

Thispagewaslastmodifiedon20April2015,at02:51.
TextisavailableundertheCreativeCommonsAttributionShareAlikeLicenseadditionaltermsmay
apply.Byusingthissite,youagreetotheTermsofUseandPrivacyPolicy.Wikipediaisa
registeredtrademarkoftheWikimediaFoundation,Inc.,anonprofitorganization.

http://en.wikipedia.org/wiki/Highlevel_programming_language

5/5

You might also like