Lenguajes de programación Historia y Evolución de los lenguajes PDF

Title Lenguajes de programación Historia y Evolución de los lenguajes
Course Lenguajes de Programacion
Institution Universidad Nacional Autónoma de Honduras
Pages 17
File Size 407.2 KB
File Type PDF
Total Downloads 36
Total Views 149

Summary

Lenguajes de programación Historia y Evolución de los lenguajes de programación...


Description

3/8/2015

Lenguajesdeprogramación:HistoriayEvolución

Seguir

Documentos TrabajosyTareas Informática

Lenguajesdeprogramación:HistoriayEvolución Orígenes.GeneracióndeComputadoras.DesarrolloInformático.SistemasOperativos.LenguajesdeNivel.POO(ProgramaciónOrientadaa Objetos) Enviadopor:Maria007 Idioma:castellano País:

España

29páginas

publicidad

HISTORIAYEVOLUCIÓNDELOSLENGUAJESDEPROGRAMACIÓN INDICE Índice..................................................................................1 Introducción........................................................................2 Definiciones........................................................................3 Historia...............................................................................4 Lastendenciasdeloslenguajesdeprogramación..............5 Clasificacióndeloslenguajesdeprogramación................9 Algunoslenguajesdeprogramacióndealtonivel............14 Evolucióndeloslenguajesdeprogramación...................24 Bibliografía.......................................................................30 INTRODUCCIÓN Losordenadoresnohablannuestroidioma,sonmaquinasycomotales,necesitanunlenguajeespecificopensadoporelhombre paraellas.Además,necesitanconstantementeinterpretartodaslasinstruccionesquereciben.Dadaladificultaddecomunicación insalvableentreelcomputadoryelprogramador,prontoaparecieronlenguajesdeprogramaciónquehacenposiblelacomunicación conelmicroprocesador,utilizandotérminosysímbolosrelacionadosconeltipodeproblemaquesedeberesolver,medianteel empleodeherramientasquebrindalainformática. http://html.rincondelvago.com/lenguajesdeprogramacion_historiayevolucion.html

1/17

3/8/2015

Lenguajesdeprogramación:HistoriayEvolución

Estoslenguajespermiten,porunlado,escribirlasoperacionesquesonnecesariasrealizarpararesolverelproblemadeunmodo parecidoacomoseescribiríaconvencionalmente(esdecir,redactaradecuadamenteelalgoritmoderesolucióndelproblema)y,por elotro,seencargadetraducirelalgoritmoallenguajemáquina(procesoconocidocomocompilación)conloqueseleconfiereal programalacapacidaddecorre(serejecutado)enelordenador.Elordenadoresenrealidadtansólounamáquinavirtual,capazde resolvertodoslosproblemasquelosusuariosseamoscapacesdeexpresarmedianteunalgoritmo(programa). Enlaactualidadhaymuchostiposdelenguajesdeprogramación,cadaunodeellosconsupropiagramática,suterminología especialyunasintaxisparticular.Porejemplo,existenalgunoscreadosespecialmenteparaaplicacionescientíficasomatemáticas generales(BASIC,FORTRAN,PASCAL,etc.);otros,encambio,seorientanalcampoempresarialyalmanejodetextosyficheros, esdecir,sonenrealidadfundamentalmentegestoresdeinformación(COBOL,PL/1,etc.),omuyrelacionadosconellenguaje máquinadelordenador(comoelCyelASSEMBLER). Losordenadoresseprogramabanenlenguajemáquinaperolasdificultadesqueestoconllevaba,juntoconlaenormefacilidadde cometererrores,cuyalocalizacióneralargaycompleja,hicieronconcebir,enladécadadelos40,laposibilidaddeusarlenguajes simbólicos.Losprimerosenaparecerfueronlosensambladores,fundamentalmenteconsistíaendarunnombre(mnemónico)acada tipodeinstrucciónycadadirección(etiqueta).Alprincipioséhaciaelprogramasobrepapely,despuéssetraducíaamanoconla ayudadeunastablas,yseintroducíanenlamáquinaenformanumérica,peroprontoaparecieronprogramasqueseensamblaban automáticamente. DEFINICIONES Escomplicadodefinirquéesyquénoesunlenguajedeprogramación.Seasumegeneralmentequelatraduccióndelas instruccionesauncódigoquecomprendelacomputadoradebesercompletamentesistemática.Normalmenteeslacomputadorala querealizalatraducción. Acontinuación,voyaredactarunosseriededefinicionesdeloslenguajesdeprogramación. Unlenguajedeprogramaciónesunanotaciónparaescribirprogramas,atravésdeloscualespodemoscomunicarnosconel hardwareydarasílasordenesadecuadasparalarealizacióndeundeterminadoproceso.Unlenguajeestadefinidoporuna gramáticaoconjuntodereglasqueseaplicanaunalfabetoconstituidoporelconjuntodesímbolosutilizados.Losdistintosnivelesde programaciónexistentesnospermitenaccederalhardware,detalformaquesegúnutilicemosunniveluotro,asítendremosque utilizarundeterminadolenguajeligadoasuscorrespondientestraductores. Conjuntodenormas“lingüísticas”(palabrasysímbolos)quepermitenescribirunprogramayqueésteseaentendidoporel ordenadorypuedasertrasladadoaordenadoressimilaresparasufuncionamientoenotrossistemas. Conjuntodeinstrucciones,ordenesysímbolosreconociblesporautómata,atravésdesuunidaddeprogramación,quelepermite ejecutarlasecuenciadecontroldeseada.Alconjuntodetotaldeestasinstrucciones,ordenesysímbolosqueestándisponiblessele llamarlenguajesdeprogramacióndelautómata.Elprogramaestaformadoporunconjuntodeinstrucciones,sentencias,bloques funcionalesygrafismosqueindicanlasoperacionesarealizar.Lasinstruccionesrepresentanlatareamáselementaldeun programa:leerunaentrada,realizarunaoperación,activarunasalida,etc.Lasentenciarepresentaelmínimoconjuntode instruccionesosentenciasquerealizanunatareaofuncióncompleja:encontrarelvalordeunafunciónlógicaencombinaciónde variasvariables,consultarunconjuntodecondiciones,etc.Elbloquefuncionaleselconjuntodeinstruccionesosentenciasque realizanunatareaofuncióncompleja:contadores,registrosdedesplazamientos,transferenciasdeinformación,etc.Todosestos elementosestánrelacionadosentresímediantelossímbolosografismos. Esunconjuntodepalabrasysímbolosquepermitenalusuariogenerarcomandoseinstruccionesparaquelacomputadoralos ejecute.Loslenguajesdeprogramacióndebentenerinstruccionesquepertenecenalascategoríasyafamiliaresdeentrada/salida, calculo/manipulación,detextos,logica/comparación,yalmacenamiento/recuperación. HISTORIA LosprimeroslenguajesdeprogramaciónsurgierondelaideadeCharlesBabagge,lacualseleocurrióaestehombreamediados delsigloXIX.EraunprofesormatemáticodelauniversidaddeCambridgeeinventoringles,quelaprincipiodelsigloXIXpredijo muchasdelasteoríasenquesebasanlosactualesordenadores.Consistíaenloqueéldenominabalamaquinaanalítica,peroque pormotivostécnicosnopudoconstruirsehastamediadosdelsigloXX.ConélcolaboroAdaLovedby,lacualesconsideradacomola primeraprogramadoradelahistoria,puesrealizoprogramasparaaquéllasupuestamaquinadeBabagge,entarjetasperforadas. Comolamaquinanollegonuncaaconstruirse,losprogramasdeAda,lógicamente,tampocollegaronaejecutarse,perosisuponen unpuntodepartidadelaprogramación,sobretodosiobservamosqueencuantoseempezóaprogramar,losprogramadores utilizaronlastécnicasdiseñadasporCharlesBabagge,yAda,queconsistíanentreotras,enlaprogramaciónmediantetarjetas perforadas.Apesardeello,Adahapermanecidocomolaprimeraprogramadoradelahistoria.Sediceportantoqueestosdos geniosdeantaño,seadelantaronunsigloasuépoca,locualdescribelainteligenciadelaquesehallabandotados. En1823elgobiernoBritánicoloapoyoparacrearelproyectodeunamáquinadediferencias,undispositivomecánicoparaefectuar sumasrepetidas.PeroBabaggesededicoalproyectodelamáquinaanalítica,abandonandolamaquinadediferencias,quese pudieraprogramarcontarjetasperforadas,graciasalacreacióndeCharlesJacquard(francés).Estehombreeraunfabricantede tejidosyhabíacreadountelarquepodíareproducirautomáticamentepatronesdetejidos,leyendolainformacióncodificadaen patronesdeagujerosperforadosentarjetasdepapelrígido.EntoncesBabaggeintentocrearlamáquinaquesepudieraprogramar contarjetasperforadasparaefectuarcualquiercálculoconunaprecisiónde20dígitos.Perolatecnologíadelaépocanobastaba parahacerrealidadsusideas.SibienlasideasdeBabaggenollegaronamaterializarsedeformadefinitiva,sucontribuciónes decisiva,yaquelosordenadoresactualesrespondenaunesquemaanálogoaldelamáquinaanalítica.Ensudiseño,lamáquina http://html.rincondelvago.com/lenguajesdeprogramacion_historiayevolucion.html

2/17

3/8/2015

Lenguajesdeprogramación:HistoriayEvolución

constabadecincounidadesbásicas:1)Unidaddeentrada,paraintroducirdatoseinstrucciones;2)Memoria,dondesealmacenaban datosyresultadosintermedios;3)Unidaddecontrol,pararegularlasecuenciadeejecucióndelasoperaciones;4)Unidad AritméticoLógica,queefectúalasoperaciones;5)Unidaddesalida,encargadadecomunicaralexteriorlosresultados.Charles Babbage,conocidocomoel"padredelainformática"nopudocompletarenaquellaépocalaconstruccióndelcomputadorquehabía soñado,dadoquefaltabaalgofundamental:laelectrónica.ElcaminoseñaladodeBabbage,nofuenuncaabandonadoysiguiéndolo, seconstruyeronlosprimeroscomputadores. Cuandosurgióelprimerordenador,elfamosoENIAC(ElectronicNumericalIntegratorAndCalculator),suprogramaciónsebasaba encomponentesfísicos,osea,queseprogramaba,cambiandodirectamenteelHardwaredelamaquina,exactamenteloquesé haciaeracambiarcablesdesitioparaconseguirasílaprogramacióndelamaquina.Laentradaysalidadedatosserealizaba mediantetarjetasperforadas. LASTENDENCIASDELOSLENGUAJESDEPROGRAMACIÓN Elestudiodeloslenguajesdeprogramaciónagrupatresinteresesdiferentes;eldelprogramadorprofesional,eldeldiseñadordel lenguajeydelImplementadordellenguaje. Además,estostrestrabajoshanderealizarsedentrodelasligadurasycapacidadesdelaorganizacióndeunacomputadoraydelas limitacionesfundamentalesdelapropia"calculabilidad".Eltermino"elprogramador"esuntantoamorfo,enelsentidodeque camuflaimportantesdiferenciasentredistintosnivelesyaplicacionesdelaprogramación.Claramenteelprogramadorqueha realizadouncursodedocesemanasenCOBOLyluegoentraenelcampodelprocesamientodedatosesdiferentedelprogramador queescribeuncompiladorenPascal,odelprogramadorquediseñaunexperimentodeinteligenciaartificialenLISP,odel programadorquecombinasusrutinasdeFORTRANpararesolverunproblemadeingenieríacomplejo,odelprogramadorque desarrollaunsistemaoperativomultiprocesadorenADA. Enestetrabajo,intentareclarificarestasdistincionestratandodiferenteslenguajesdeprogramaciónenelcontextodecadaáreade aplicacióndiferente.El"diseñadordellenguaje"estambiénunterminoalgonebuloso.Algunoslenguajes(comoAPLyLISP)fueron diseñadosporunasolapersonaconunconceptoúnico,mientrasqueotros(FORTRANyCOBOL)sonelproductodedesarrollode variosañosrealizadosporcomitésdediseñodelenguajes. El"Implementadordellenguaje"eslapersonaogrupoquedesarrollauncompiladorointerpreteparaunlenguajesobreuna maquinaparticularotiposdemaquinas.Masfrecuentemente,elprimercompiladorparaellenguajeYsobrelamaquinaXes desarrolladaporlacorporaciónquemanufacturalamaquinaX.Porejemplo,hayvarioscompiladoresdeFortranenuso;uno desarrolladoporIBMparaunamaquinaIBM,otrodesarrolladoporDECparaunamaquinaDEC,otroporCDC,yasísucesivamente. Lascompañíasdesoftwaretambiéndesarrollancompiladoresytambiénlohacenlosgruposdeinvestigacióndelasuniversidades. Porejemplo,launiversidaddeWaterloodesarrollacompiladoresparaFORTRANYPASCAL,loscualessonútilesenunentornode programacióndeestudiantesdebidoasusuperiorcapacidaddediagnosticoyvelocidaddecompilación. Haytambiénmuchosaspectoscompartidosentrelosprogramadores,diseñadoresdeunlenguajeimplementadoresdelmismo.Cada unodebecomprenderlasnecesidadesyligadurasquegobiernanlasactividadesdelosotrosdos. Hay,almenos,dosformasfundamentalesdesdelasquepuedenverseoclasificarseloslenguajesdeprogramación:porsunively porprincipalesaplicaciones.Además,estasvisionesestáncondicionadasporlavisiónhistóricaporlaquehatranscurridoellenguaje. Además,haycuatronivelesdistintosdelenguajedeprogramación. Los"LenguajesDeclarativos"sonlosmasparecidosalcastellanooinglesensupotenciaexpresivayfuncionalidadestánenelnivel masaltorespectoalosotros.Sonfundamentalmentelenguajesdeordenes,dominadosporsentenciasqueexpresan"Loquehay quehacer"envesde"Comohacerlo".EjemplosdeestoslenguajessonloslenguajesestadísticoscomoSASySPSSyloslenguajes debúsquedaenbasededatos,comoNATURALeIMS.Estoslenguajessedesarrollaronconlaideadequelosprofesionales pudieranasimilarmasrápidamenteellenguajeyusarloensutrabajo,sinnecesidaddeprogramadoresopracticasdeprogramación. Loslenguajesde"AltoNivel"sonlosmásutilizadoscomolenguajedeprogramación.Aunquenosonfundamentalmentedeclarativos, estoslenguajespermitenquelosalgoritmosseexpresenenunnivelyestilodeescriturafácilmentelegibleycomprensibleporotros programadores.Además,loslenguajesdealtoniveltienennormalmentelascaracterísticasde"Transportabilidad".Esdecir,están implementadassobrevariasmaquinasdeformaqueunprogramapuedeserfácilmente"Transportado"(Transferido)deuna maquinaaotrasinunarevisiónsustancial.Enesesentidosellama"Independientesdelamaquina".Ejemplosdeestoslenguajesde altonivelsonPASCAL,APLyFORTRAN(paraaplicacionescientíficas),COBOL(paraaplicacionesdeprocesamientodedatos), SNOBOL(paraaplicacionesdeprocesamientodetextos),LISPyPROLOG(paraaplicacionesdeinteligenciaartificial),CyADA(para aplicacionesdeprogramacióndesistemas)yPL/I(paraaplicacionesdepropósitosgenerales). Los"LenguajesEnsambladores"ylos"LenguajesMaquina"sondependientesdelamaquina.Cadatipodemaquina,talcomoVAX dedigital,tienesupropiolenguajemaquinadistintoysulenguajeensambladorasociado.EllenguajeEnsambladoressimplemente unarepresentaciónsimbólicadellenguajemaquinaasociado,locualpermiteunaprogramaciónmenostediosaqueconelanterior. Sinembargo,esnecesariounconocimientodelaarquitecturamecánicasubyacentepararealizarunaprogramaciónefectivaen cualquieradeestosniveleslenguajes. Lossiguientestressegmentosdelprogramaequivalentesexponenlasdistincionesbásicasentrelenguajesmaquina,ensambladores dealtonivel: Comomuestraesteejemplo,amasbajoniveldelenguajemascercaestadelascaracterísticasdeuntipoemaquinaparticulary másalejadodesercomprendidoporunhumanoordinario.Haytambiénunaestrecharelación(correspondencia1:1)entrelas http://html.rincondelvago.com/lenguajesdeprogramacion_historiayevolucion.html

3/17

3/8/2015

Lenguajesdeprogramación:HistoriayEvolución

sentenciasenlenguajeensambladorysusformasenlenguajemaquinacodificada.Laprincipaldiferenciaaquíesqueloslenguajes ensambladoresseutilizansímbolos(X,Y,Z,Apara"sumar",Mpara"multiplicar"),mientrasqueserequierencódigosnuméricos (OC1A4,etc.)paraquelocomprendalamaquina. Laprogramacióndeunlenguajedealtoniveloenunlenguajeensambladorrequiere,portanto,algúntipodeinterfazconellenguaje maquinaparaqueelprogramapuedaejecutarse.Lastresinterfacesmáscomunes:un"ensamblador”,un"compilador"yun "interprete".ElensambladoryelcompiladortraducenelprogramaaotroequivalenteenellenguajeXdelamaquina"residente" comounpasoseparadoantesdelaejecución.Porotraparte,elinterpreteejecutadirectamentelasinstruccionesenunlenguajeY dealtonivel,sinunpasodeprocesamientoprevio. Lacompilaciónes,engeneral,unprocesomáseficientequelainterpretaciónparalamayoríadelostiposdemaquina.Estosedebe principalmenteaquelassentenciasdentrodeun"bucle"debenserreinterpretadascadavezqueseejecutanporuninterprete.Con uncompilador.Cadasentenciaesinterpretadayluegotraducidaalenguajemaquinasolounavez. Algunoslenguajessonlenguajesprincipalmenteinterpretados,comoAPL,PROLOGyLISP.ElrestodeloslenguajesPascal, FORTRAN,COBOL,PL/I,SNOBOL,C,AdayModula2sonnormalmentelenguajescompilados.Enalgunoscasos,uncompilador estaráutilizablealternativamenteparaunlenguajeinterpretado(talcomoLISP)einversamente(talcomoelinterpreteSNOBOL4de loslaboratoriosBell).1 Frecuentementelainterpretaciónespreferiblealacompilaciónenunentornodeprogramaciónexperimentalodeeducación,donde cadanuevaejecucióndeunprogramaimplicadouncambioenelpropiotextodelprograma.Lacalidaddediagnosisydepuración quesoportanloslenguajesinterpretadosesgeneralmentemejorqueladeloslenguajescompilados,puestoquelosmensajesde errorserefierendirectamenteasentenciasdeltextodelprogramaoriginal.Además,laventajadelaeficienciaqueseadjudica tradicionalmentealoslenguajescompiladosfrentealosinterpretadospuedeprontosereliminado,debidoalaevolucióndelas maquinascuyoslenguajessonellosmismos1lenguajesdealtonivel.ComoejemplodeestosestánlasnuevasmaquinasLISP,las cualeshansidodiseñadasrecientementeporSymbolicsyXeroxCorporations. LoslenguajesdeProgramaciónsontomadosdediferentesperspectivas.Esimportanteparaunprogramadordecidircuales conceptosemitirocualesincluirenlaprogramación.Confrecuenciaelprogramadoresosadoausarcombinacionesdeconceptos quehacenallenguaje"DURO"deusar,deentendereimplementar.Cadaprogramadortieneenmenteunestiloparticularde programación,ladecisióndeincluiruomitirciertostiposdedatosquepuedentenerunasignificativainfluenciaenlaformaenqueel Lenguajeesusado,ladecisióndeusaruomitirconceptosdeprogramaciónomodelos. Existencincoestilosdeprogramaciónysonlossiguientes: OrientadosaObjetos. Imperativa:Entrada,procesamientoysalidasdeDatos. Funcional:"Funciones",losdatossonfunciones,losresultadospuedenserunvalorounafunción. Lógico:{T,F}+operacioneslógicas(InteligenciaArtificial). Concurrente:Aúnestaenprocesodeinvestigación. Elprogramador,diseñadoreimplementadordeunlenguajedeprogramacióndebencomprenderlaevoluciónhistóricadelos lenguajesparapoderapreciarporquepresentancaracterísticasdiferentes.Porejemplo,loslenguajes"masjóvenes"desaconsejan (oprohíben)elusodelassentenciasGOTOcomomecanismodecontrolinferior,yestoescorrectoenelcontextodelasfilosofías actualesdeingenieríadelsoftwareyprogramaciónestructurada.PerohubountiempoenquelaGOTO,combinadaconlaIF,erala únicaestructuradecontroldisponible;elprogramadornodisponedealgocomolaconstrucciónWHILEounIFTHENELSEpara elegir.Portanto,cuandoseveunlenguajecomoFORTRAN,elcualtienesusraícesenloscomienzosdelahistoriadeloslenguajes deprogramación,unonodebesorprendersedeverlaantiguasentenciaGOTOdentrodesurepertorio. Lomásimportanteesquelahistorianospermiteverlaevolucióndefamiliasdelenguajesdeprogramación,verlainfluenciaque ejercerlasarquitecturasyaplicacionesdelascomputadorassobreeldiseñodelenguajesyevitarfuturosdefectosdediseño aprendidolasleccionesdelpasado.Losqueestudiansehanelegidodebidoasumayorinfluenciayampliousoentrelos programadores,asícomoporsusdistintascaracterísticasdediseñoeimplementación.Colectivamentecubrenlosaspectosmás importantesconlosquehadeenfren...


Similar Free PDFs