Sunteți pe pagina 1din 12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

ndicedecontenido
Introduccinalaprogramacin...........................................................................................................1
Programacin...................................................................................................................................1
LENGUAJESDEMQUINA...............................................................................................2
LENGUAJESENSAMBLADORES......................................................................................3
LENGUAJESDEALTONIVEL...........................................................................................4
LENGUAJESCOMPILADOS...............................................................................................5
LENGUAJESINTERPRETADOS.......................................................................................5
LENGUAJESDEPROGRAMACINDECLARATIVOS...................................................5
PROGRAMACINLGICA................................................................................................6
PROGRAMACINFUNCIONAL........................................................................................6
PROGRAMACINORIENTADAABASESDEDATOS...................................................7
LENGUAJESDEPROGRAMACINIMPERATIVOS......................................................7
LENGUAJESDEPROGRAMACINORIENTADOSAOBJETOS.................................8
Entornodedesarrollointegrado......................................................................................................8
Framework......................................................................................................................................10

Introduccinalaprogramacin.
PROGRAMACIN
Laprogramacineselprocesodedisear,escribir,probar,depurarymantenerelcdigofuentede
programas computacionales. El cdigo fuente es escrito en un lenguaje de programacin. El
propsito de la programacin es crear programas que exhiban un comportamiento deseado. El
procesodeescribircdigorequierefrecuentementeconocimientosenvariasreasdistintas,adems
del dominio del lenguaje a utilizar, algoritmos especializados y lgica formal. Programar no
involucranecesariamenteotrastareastalescomoelanlisisydiseodelaaplicacin(perosiel
diseodelcdigo),aunquesisuelenestarfusionadaseneldesarrollodepequeasaplicaciones.

Historiaytiposdeloslenguajesdeprogramacin.
LosprimeroslenguajesdeprogramacinsurgierondelaideadeCharlesBabagge,lacualsele
ocurriaestehombreamediadosdelsigloXIX.Eraunprofesormatemticodelauniversidadde
Cambridgeeinventoringles,quelaprincipiodelsigloXIXpredijomuchasdelasteorasenquese
basanlosactualesordenadores.Consistaenloqueldenominabalamaquinaanaltica,peroque
por motivos tcnicos 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
programasparaaqullasupuestamaquinadeBabagge,entarjetasperforadas.
Como la maquina no llego nunca a construirse, los programas de Ada, lgicamente, tampoco
llegaron a ejecutarse, pero si suponen un punto de partida de la programacin, sobre todo si
observamos que en cuanto se empez a programar, los programadores utilizaron las tcnicas
I.E.S.Fco.J.DeBurgos

1de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

diseadasporCharlesBabagge,yAda,queconsistanentreotras,enlaprogramacinmediante
tarjetas perforadas.Apesardeello,Adahapermanecidocomolaprimeraprogramadoradela
historia.Sediceportantoqueestosdosgeniosdeantao,seadelantaronunsigloasupoca,locual
describelainteligenciadelaquesehallabandotados.
En1823el gobierno Britnicoloapoyoparacrearel proyecto deunamquinadediferencias,un
dispositivo mecnico para efectuar sumas repetidas. Pero Babagge se dedico al proyecto de la
mquinaanaltica,abandonandolamaquinadediferencias,quesepudieraprogramarcontarjetas
perforadas,graciasalacreacindeCharlesJacquard(francs).Estehombreeraunfabricantede
tejidosyhabacreadountelarquepodareproducirautomticamentepatronesdetejidos,leyendola
informacin codificadaenpatronesdeagujerosperforadosentarjetasdepapelrgido.Entonces
Babaggeintentocrearlamquinaquesepudieraprogramarcontarjetasperforadasparaefectuar
cualquier clculo conunaprecisinde20dgitos.Perola tecnologadelapocanobastabapara
hacer realidad sus ideas. Si bien las ideas de Babagge no llegaron a materializarse de forma
definitiva,sucontribucinesdecisiva,yaquelosordenadoresactualesrespondenaunesquema
anlogoaldelamquinaanaltica.Ensudiseo,lamquinaconstabadecincounidadesbsicas:1)
Unidaddeentrada,paraintroducirdatoseinstrucciones;2)Memoria,dondesealmacenabandatos
y resultados intermedios; 3) Unidad de control, para regular la secuencia de ejecucin de las
operaciones; 4) Unidad AritmticoLgica, que efecta las operaciones; 5) Unidad de salida,
encargadadecomunicaralexteriorlosresultados.CharlesBabbage,conocidocomoel"padredela
informtica"nopudocompletarenaquellapocalaconstruccindelcomputadorquehabasoado,
dadoquefaltabaalgofundamental:la electrnica.ElcaminosealadodeBabbage,nofuenunca
abandonadoysiguindolo,seconstruyeronlasprimerascomputadoras.

Clasificacinatendiendoalacercanaalhardware
LENGUAJESDEMQUINA

Ellenguajemquinadeunacomputadoraconstadecadenasdenmerosbinarios(cerosyunos)y
eselnicoque"entienden"directamentelos procesadores.Todaslasinstruccionespreparadasen
cualquier lenguaje de mquina tienen por lo menos dos partes. La primera es el comando u
operacin,quedicealacomputadoraculeslafuncinquevaarealizar.Todaslascomputadoras
tienenuncdigodeoperacinparacadaunadesusfunciones.Lasegundapartedelainstruccines
eloperando,queindicaalacomputadoradndehallaroalmacenarlosdatosyotrasinstrucciones
que se van a manipular; el nmero de operandos de una instruccin vara en las distintas
computadoras.Enunacomputadoradeoperandonico,elequivalentebinariode"SUMAR0814"
podrahacerquesesumeelvalorqueseencuentraenlalocalidaddealmacenamientoodireccin
0814alvalorqueseencuentraenlaunidadaritmticalgica.Enunamquinadedosoperandos,la
representacinbinariade"SUMAR08148672"podrahacerquesesumeelvalorqueestenla
localidad8672alvalorqueestenladireccin0814.Elformatodeoperandonicoespopularen
lasmicrocomputadorasmspequeas;laestructuradedosoperandosseencuentraencasitodaslas
demsmquinas.
Segnlosestndaresactuales,lasprimerascomputadoraseranpocotolerantes.Losprogramadores
tenanquetraducirlasinstruccionesdemaneradirectaalaformadelenguajedemquinaque
comprendan las computadoras. Por ejemplo, un programador que escribiera la instruccin
I.E.S.Fco.J.DeBurgos

2de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

"SUMAR0814"paraunadelasprimerasmquinasIBMhubieraescrito:
000100000000000000000000000010111000
Adems de recordar las docenas de cdigos numricos para los comandos del conjunto de
instruccionesdelamquina,elprogramadortenaqueconocerlasposicionesdondesealmacenan
losdatosylasinstrucciones.Lacodificacininicialmuchasvecesrequerameses,porloqueera
costosayerafrecuentequeoriginaraerrores.Revisarlasinstruccionesparalocalizarerroreseracasi
tantediosocomoescribirlasporprimeravez.Adems,sieranecesariomodificarun programa
posteriormente,latareapodallevarsemeses.
LENGUAJESENSAMBLADORES

A principios deladcadade1950,yconelfindefacilitarlalabordelos programadores,se


desarrollaron cdigos nemotcnicos para las operaciones y direcciones simblicas. La palabra
nemotcnicoserefiereaunaayudaparalamemorizacin.Unodelosprimerospasosparamejorar
el proceso depreparacinde programas fuesustituirloscdigosdeoperacionesnumricosdel
lenguaje de mquina por smbolos alfabticos, que son los cdigos nemotcnicos. Todas las
computadorasactualestienencdigosnemotcnicosaunque,naturalmente,lossmbolosqueseusan
varanenlasdiferentesmarcasymodelos.Lacomputadorasigueutilizandoellenguajedemquina
paraprocesarlosdatos,perolosprogramasensambladorestraducenanteslossmbolosdecdigo
deoperacinespecificadosasusequivalentesenlenguajedemquina.
Esteprocedimientopreparavancesposteriores.Silacomputadoraeracapazdetraducirsmbolos
convenientes en operaciones bsicas, por qu no hacer tambin que realizara otras funciones
rutinariasdecodificacin,comolaasignacindedireccionesdealmacenamientoalosdatos?La
tcnica de direccionamiento simblico permite expresar una direccin no en trminos de su
localizacinnumricaabsoluta,sinoentrminosdesmbolosconvenientesparaelprogramador.
Durante las primeras etapas del direccionamientosimblico,el programadorasigna unnombre
simblicoyunadireccinrealaundato.Porejemplo,elprogramadorpodraasignarelvalortotal
demercancaadquiridaduranteunmesporunclientedeunatiendadedepartamentosaladireccin
0063,ydarleelnombresimblicoTOTAL.Sepodraasignarelvalordelamercancadevueltasin
usarduranteelmesaladireccin2047ydrseleelnombresimblicoCRDITO.As,duranteel
restodelprograma,elprogramadorsereferiralosnombressimblicos,msquealasdirecciones,
cuando fuera preciso procesar estos datos. Por ejemplo, se podra escribir la instruccin "S
CRDITOTOTAL"pararestarelvalordelasmercancasdevueltasdelimportatotaldecompras
paraobtenerelimportedelafacturamensualdelcliente.Acontinuacin,elprogramaensamblador
traduciralainstruccinsimblicaaestacadenadebits:

Msadelantesehizootramejora.Sedejalacomputadoralatareadeasignaryrecordarlas
direccionesdelas instrucciones.Lo nicoquetenaquehacerelprogramadoreraindicarala
computadoraladireccindelaprimerainstruccin,yelprogramaensambladorseencargabade
almacenar,demaneraautomtica,todaslasdemsenformasecuencialapartirdeesepunto.As,si
seagregabamstardeotrainstruccinalprograma,noeranecesariomodificarlasdireccionesde
todaslasinstruccionesqueseguanalpuntodeinsercin(comotendraquehacerseenelcasode
I.E.S.Fco.J.DeBurgos

3de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

programasescritosenlenguajedemquina).Envezdeello,elprocesadorajustabaautomticamente
laslocalidadesdememorialaprximavezqueseejecutabaelprograma.
Enlaactualidad,losprogramadoresnoasignannmerosdedireccinrealesalosdatossimblicos,
simplementeespecificandndequierenquesecoloquelaprimeralocalidaddelprograma,yel
programaensambladorseencargadelodems:asignalocalidadestantoparalasinstruccionescomo
paralosdatos.
Estos programas de ensamble, o ensamblador, tambin permite a la computadora convertir las
instrucciones en lenguaje ensamblador del programador en su propio cdigo de mquina. Un
programadeinstruccionesescritoenlenguajeensambladorporunprogramadorsellamaprograma
fuente.Despusdequeelensambladorconvierteelprogramafuenteencdigodemquinaastese
ledenomina programaobjeto. Paralosprogramadoresesmsfcilescribirinstruccionesenun
lenguajeensambladorqueencdigosdelenguajesdemquina,peroesposiblequeserequierandos
corridasdecomputadoraantesdequesepuedanutilizarlasinstruccionesdelprogramafuentepara
producirlassalidasdeseadas.
Loslenguajesensambladorestienen ventajassobreloslenguajesdemquina. Ahorran tiempo y
requierenmenos atencinadetalles.Seincurrenenmenoserroresylosquesecometensonms
fcilesdelocalizar.Adems,losprogramasenlenguajeensambladorsonmsfcilesdemodificar
quelosprogramasenlenguajedemquina.Peroexistenlimitaciones.Lacodificacinenlenguaje
ensambladores todavaunprocesolento.Unadesventaja importante deestos lenguajes es que
tienenunaorientacinalamquina.Esdecir,estndiseadosparalamarcaymodeloespecficode
procesadorqueseutiliza,yesprobableque,paraunamquinadiferente,setenganquevolvera
codificarlosprogramas.
LENGUAJESDEALTONIVEL

Losprimerosprogramasensambladoresproducanslounainstruccinenlenguajedemquinapor
cada instruccin del programa fuente. Para agilizar la codificacin, se desarrollaron programas
ensambladoresquepodanproducirunacantidadvariabledeinstruccionesenlenguajedemquina
porcadainstruccindelprogramafuente.Dichodeotramanera,unasolamacroinstruccinpoda
producir varias lneas de cdigo en lenguaje de mquina. Por ejemplo, el programador podra
escribir"LEERARCHIVO",yelprogramatraductorproduciraunaseriedetalladadeinstrucciones
allenguajedemquinapreviamentepreparadas,conloquesecopiaraunregistrodelarchivoque
estuvieraleyendoeldispositivodeentradaalamemoriaprincipal.As,elprogramadornosetena
queocupardeescribirunainstruccinporcadaoperacindemquinarealizada.
Eldesarrollodelastcnicasnemotcnicasylasmacroinstruccionescondujo,asuvez,aldesarrollo
delenguajesdealtonivelqueamenudoestnorientadoshaciaunaclasedeterminadadeproblemas
de proceso. Por ejemplo, se han diseado varios lenguajes para procesar problemas cientfico
matemtico,asimismohanaparecidootroslenguajesquehacenhincapienlas aplicaciones de
procesodearchivos.
Adiferenciadelosprogramasdeensamble,losprogramasenlenguajedealtonivelsepueden
utilizarcon diferentesmarcasdecomputadores sintenerquehacermodificacionesconsiderables.
Estopermite reducir sustancialmente el costo de la reprogramacin cuando seadquiere equipo
nuevo.Otrasventajasdeloslenguajesdealtonivelson:

Sonmsfcilesdeaprenderqueloslenguajesensambladores.
Sepuedenescribirmsrpidamente.

I.E.S.Fco.J.DeBurgos

4de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

Permitentenermejordocumentacin.
Sonmsfcilesdemantener.
Unprogramadorquesepaescribirprogramasenunodeestoslenguajesnoestlimitadoa
utilizarunsolotipodemquina.

Clasificacinatendiendoalaformadegenerarelprograma.
LENGUAJESCOMPILADOS

Naturalmente,unprogramaqueseescribeenunlenguajedealtoniveltambintienequetraducirse
auncdigoquepuedautilizarlamquina.Losprogramastraductoresquepuedenrealizaresta
operacinsellamancompiladores.stos,comolosprogramasensambladoresavanzados,pueden
generarmuchaslneasdecdigodemquinaporcadaproposicindelprogramafuente.Serequiere
unacorridadecompilacinantesdeprocesarlosdatosdeunproblema.
Loscompiladoressonaquelloscuyafuncinestraducirunprogramaescritoenundeterminado
lenguajeaunidiomaquelacomputadoraentienda(lenguajemquinaconcdigobinario).
Alusarunlenguajecompilado(comolosonloslenguajesdelpopularVisualStudiodeMicrosoft),
elprogramadesarrolladonuncaseejecutamientrashayaerrores,sinohastaqueluegodehaber
compiladoelprograma,yanoaparecenerroresenelcdigo.
LENGUAJESINTERPRETADOS

Sepuedetambinutilizarunaalternativadiferentedeloscompiladoresparatraducirlenguajesde
altonivel.Envezdetraducirelprogramafuenteygrabarenformapermanenteelcdigoobjetoque
seproducedurantelacorridadecompilacinparautilizarloenunacorridadeproduccinfutura,el
programadorslocargaelprogramafuenteenlacomputadorajuntoconlosdatosquesevana
procesar.Acontinuacin,unprogramaintrprete,almacenadoenelsistemaoperativodeldisco,o
incluidodemanerapermanentedentrodelamquina,conviertecadaproposicindelprograma
fuenteenlenguajedemquinaconformevayasiendonecesarioduranteelprocesodelosdatos.No
segrabaelcdigoobjetoparautilizarloposteriormente.
Lasiguientevezqueseutiliceunainstruccin,seledebeinterpretarotravezytraduciralenguaje
mquina.Porejemplo,duranteelprocesamientorepetitivodelospasosdeunciclo,cadainstruccin
delciclotendrquevolveraserinterpretadocadavezqueseejecuteelciclo,locualhacequeel
programaseamslentoentiempodeejecucin(porquesevarevisandoelcdigoentiempode
ejecucin)peromsrpidoentiempodediseo(porquenosetienequeestarcompilandoacada
momento el cdigo completo). El intrprete elimina la necesidad de realizar una corrida de
compilacindespusdecadamodificacindelprogramacuandosequiereagregarfuncioneso
corregirerrores;peroesobvioqueunprogramaobjetocompiladoconantelacindeberejecutarse
conmuchamayorrapidezqueunoquesedebeinterpretaracadapasoduranteunacorridade
produccin.

Clasificacinatendiendoalaformadeprogramar.
LENGUAJESDEPROGRAMACINDECLARATIVOS

Selesconocecomolenguajesdeclarativosen ciencias computacionalesaaquelloslenguajesde


I.E.S.Fco.J.DeBurgos

5de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

programacinenloscualesseleindicaalacomputadoraquesloquesedeseaobteneroqueslo
queseestabuscando,porejemplo:Obtenerlosnombresdetodoslosempleadosquetenganmsde
32aos.EsosepuedelograrconunlenguajedeclarativocomoSQL.
La programacin declarativa es una forma de programacin que implica la descripcin de un
problemadadoenlugardeproveerunasolucinparadichoproblema,dejandolainterpretacinde
lospasosespecficosparallegaradichasolucinaunintrpretenoespecificado.Laprogramacin
declarativaadopta,porlotanto,unenfoquediferentealdelaprogramacinimperativatradicional.
Enotraspalabras,laprogramacindeclarativaproveeel"qu",perodejael"cmo"liberadoala
implementacinparticulardelintrprete.Porlotantosepuedeverquelaprogramacindeclarativa
tienedosfasesbiendiferenciadas,ladeclaracinylainterpretacin.
Esimportantesealarqueapesardehacerreferenciaaintrprete,nohayquelimitarsea"lenguajes
interpretados"enelsentido habitual deltrmino,sinoquetambinsepuedeestartrabajandocon
"lenguajescompilados".
PROGRAMACINLGICA

Laideafundamentaldelaprogramacinlgicaconsisteenemplearlalgicacomolenguajede
programacin.Lalgicanoesimperativaporquenosirveparaindicarcmoresolverunproblema
(rdenes). La lgica es declarativa porque sirve para especificar qu problema resolver
(condiciones).
Enlaprogramacinlgica,seespecificanlascondicionesquesatisfacenlassoluciones,sededucen
lassolucionesapartirdelascondicionesyelnfasisdetodoestenquproblemaresolver.El
problemasedescribeespecificandoqucaracterizaasusposiblessoluciones.
La programacin lgica, junto con la funcional, forma parte de lo que se conoce como
programacindeclarativa.Enloslenguajestradicionales,laprogramacinconsisteenindicarcmo
resolver un problema mediante sentencias; en la programacin lgica, se trabaja de forma
descriptiva, estableciendo relaciones entre entidades, indicando no cmo, sino qu hacer. Se
establece entonces que la idea esencial de la programacin lgica es: algoritmos = lgica +
control. Esdecir,unalgoritmoseconstruyeespecificando conocimiento enunlenguajeformal
(lgicadeprimerorden),yelproblemaseresuelvemedianteunmecanismodeinferencia(control)
queactasobreaqul.
Al hacer un recorrido por la programacin lgica, aparece como uno de sus lenguajes ms
representativos,Prolog,queesunclsicodelainteligenciaartificialyqueseaplicademltiples
formaseneldesarrollodesoftwarecomercial.
PROGRAMACINFUNCIONAL

Laprogramacinfuncionalesunparadigmadeprogramacindeclarativabasadoenlautilizacin
de funciones matemticas. El objetivo de la programacin funcional es conseguir lenguajes
expresivosymatemticamenteelegantes,enlosquenoseanecesariobajaralniveldelamquina
paradescribirelprocesollevadoacaboporelprograma.
Losprogramasescritosenunlenguajefuncionalestnconstituidosnicamentepordefinicionesde
funciones,entendiendostasnocomosubprogramasclsicosdeunlenguajeimperativo(puesla
programacinfuncionalesdeclarativa),sinocomofuncionespuramentematemticas,enlasquese
verificanciertaspropiedadescomola transparenciareferencial (elsignificadodeunaexpresin
I.E.S.Fco.J.DeBurgos

6de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

dependenicamentedelsignificadodesussubexpresiones),yportanto,lacarenciatotaldeefectos
laterales.
Otrascaractersticaspropiasdeestoslenguajessonlanoexistenciadeasignacionesdevariablesyla
faltadeconstruccionesestructuradascomolasecuenciaolaiteracin(loqueobligaenlaprcticaa
quetodaslasrepeticionesdeinstruccionessellevenacabopormediodefuncionesrecursivas).
Existendosgrandescategorasdelenguajesfuncionales:losfuncionales puros ylos hbridos.La
diferenciaentreambosestribaenqueloslenguajesfuncionaleshbridossonmenosdogmticosque
los puros,al permitir conceptos tomados de los lenguajes imperativos,comolas secuencias de
instruccionesolaasignacindevariables.Encontraste,loslenguajesfuncionalespurostienenuna
mayorpotenciaexpresiva,conservandoalavezsutransparenciareferencial,algoquenosecumple
siempreconunlenguajehbrido.
PROGRAMACINORIENTADAABASESDEDATOS

Las bases de datos son programas que administran informacin y hacen ms ordenada la
informacin,apartedehacerlafcildebuscaryporsupuestodeencontrar.
Lascaractersticasdelasbasesdedatospuedenserventajosasodesventajosas:puedenayudara
almacenar,organizar,recuperar,comunicarymanejarinformacinenformasqueseranimposibles
sinlascomputadoras,perotambinafectadealgunamanerayaqueexistenenormescantidadesde
informacinenbasesdedatosdelasquenosetienecontroldelacceso.
Las bases de datos tienen muchos usos: facilitan el almacenamiento de grandes cantidades de
informacin; permiten la recuperacin rpida y flexible de informacin, con ellas se puede
organizaryreorganizarlainformacin,ascomoimprimirlaodistribuirlaenformasdiversas.
Esclaroqueloslenguajesorientadosabasesdedatossondeclarativosynoimperativos,puesel
problemaes"qu"sequierehacero"qu"senecesitabuscaryencontrarenlabasededatos,ynose
enfatizael"cmo".
Unabasededatostambinsepuededefinircomoun bancodedatos oconjuntodedatosque
pertenecenalmismocontexto,almacenadossistemticamenteparasuposterioruso.Enestesentido,
una biblioteca puedeconsiderarseunabasededatoscompuestaensumayorapor documentos y
textosimpresosenpapeleindexadosparasuconsulta.
Enlaactualidad,ygraciasaldesarrollotecnolgicodecamposcomolainformticaylaelectrnica,
la mayora de las bases de datos tienen formato electrnico, que ofrece un amplio rango de
solucionesalproblemadealmacenardatos.
Lossistemasgestoresdebasesdedatos(SGBD)permitenalmacenaryposteriormenteaccederalos
datosdeformarpidayestructurada.
LENGUAJESDEPROGRAMACINIMPERATIVOS

Encienciasdelacomputacinsellamalenguajesimperativosaaquellosenloscualesseleordenaa
lacomputadoracmorealizarunatareasiguiendounaseriedepasosoinstrucciones,porejemplo:
Paso1,solicitarnmero.
Paso2,multiplicarnmeropordos.
Paso3,imprimirresultadodelaoperacin.
I.E.S.Fco.J.DeBurgos

7de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

Paso4,etc,
ElprocesoanteriorsepuederealizarconunlenguajeimperativocomoporejemploBASIC,C,C++,
Java,Clipper,Dbase,C#,PHP,Perl,etc.
Dentrode la programacin imperativa, setiene un conjuntode instrucciones quele indican al
computadorcmorealizarunatarea.
Loslenguajesimperativossebasanencomandosurdenesqueseledanalacomputadoraparaque
hagaalgo,conelfindeorganizarocambiarvaloresenciertaspartesdelamemoria.
Laejecucindeestoscomandosserealiza,enlamayorpartedeellos,secuencialmente,esdecir,
hastaqueuncomandonohasidoejecutadonoseleeelsiguiente.
Segnel dominio,omejordichoconelpropsitoqueseutilizaelprograma,sepuedehablarde
lenguajesdedominioespecficoydedominiogeneral.
LENGUAJESDEPROGRAMACINORIENTADOSAOBJETOS

En la Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) se definen los
programasentrminosde"clasesdeobjetos",objetosquesonentidadesquecombinanestado(es
decir,datos)comportamiento(estoes,procedimientosomtodos)eidentidad(propiedaddelobjeto
quelodiferenciadelresto).La programacinorientadaaobjetos expresaunprogramacomoun
conjuntodeestosobjetos,quecolaboranentreellospararealizartareas.Estopermitehacerlos
programasmdulosmsfcilesdeescribir,manteneryreutilizar.
Deestaforma,unobjetocontienetodalainformacin,(losdenominadosatributos)quepermite
definirloeidentificarlofrenteaotrosobjetospertenecientesaotrasclases(einclusoentreobjetosde
lamismaclase,alpodertenervaloresbiendiferenciadosensusatributos).Asuvez,disponede
mecanismosdeinteraccin(losllamadosmtodos)quefavorecenlacomunicacinentreobjetos(de
unamismaclaseodedistintas),yenconsecuencia,elcambiodeestadoenlospropiosobjetos.Esta
caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben
separarse)informacin(datos)yprocesamiento(mtodos).
Dadaestapropiedaddeconjuntodeunaclasedeobjetos,quealcontarconunaseriedeatributos
definitorios,requieredeunosmtodosparapodertratarlos(loquehacequeambosconceptosestn
ntimamenteentrelazados),elprogramadordebepensarindistintamenteenambostrminos,yaque
nodebenuncasepararodarmayorimportanciaalosatributosafavordelosmtodos,niviceversa.
Hacerlopuedellevaralprogramadoraseguirelhbitoerrneodecrearclasescontenedorasde
informacinporunladoyclasesconmtodosquemanejenesainformacinporotro(llegandoa
unaprogramacinestructuradacamufladaenunlenguajedeprogramacinorientadaaobjetos).
Estodifieredeloslenguajesimperativostradicionales,enlosquelosdatosylosprocedimientos
estnseparadosysinrelacin,yaquelonicoquesebuscaeselprocesamientodeunosdatosylos
procedimientosestnseparadosysinrelacin,yaquelonicoquesebuscaeselprocesamientode
unos datos de entrada para obtener otros de salida. La programacin estructurada anima al
programadorapensarsobretodoentrminosdeprocedimientosofunciones,yensegundolugaren
las estructuras de datos que esos procedimientos manejan. Los programadores de lenguajes
imperativos escribenfuncionesydespusles pasanlosdatos.Los programadores queemplean
lenguajesorientadosaobjetosdefinenobjetoscondatosymtodosydespusenvanmensajesalos
objetosdiciendoquerealicenesosmtodosporsmismos.

I.E.S.Fco.J.DeBurgos

8de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

Unobjetosepuededefinircomoungrupodeprocedimientosquecompartenunestado.Sedefineal
conjuntodedatoscomo"estado",y"mtodos"comoelconjuntodeprocedimientosquepueden
alterareseestado.Unprogramaorientadoaobjetosesunmtododeimplementacinenelquelos
programasestnorganizadoscomocoleccionesdeobjetos,dondecadaunoesunainstanciade
algunaclase,ydondetodaslasclasessonmiembrosdeunajerarquadeclasesconectadaspor
relacionesde herencia.Estetipodelenguajessonmuyrecientesencomparacinalosprimeros
lenguajesdeprogramacinqueaparecieron.

ENTORNODEDESARROLLOINTEGRADO
Un entorno de desarrollo integrado, llamado tambin IDE (sigla en ingls de integrated
developmentenvironment),esunprogramainformticocompuestoporunconjuntodeherramientas
de programacin.Puedededicarseenexclusivaaunsolo lenguajedeprogramacin obienpoder
utilizarseparavarios.

DevC++,unentornoparaellenguajedeprogramacinC++.

WebDevStudio,unIDEenlneaparaellenguajedeprogramacinC/C++.
UnIDEesunentornodeprogramacinquehasidoempaquetadocomounprogramadeaplicacin,
I.E.S.Fco.J.DeBurgos

9de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

esdecir,consisteenuneditordecdigo,uncompilador,undepuradoryunconstructordeinterfaz
grfica(GUI).LosIDEspuedenseraplicacionesporssolasopuedenserpartedeaplicaciones
existentes.EllenguajeVisualBasic,porejemplo,puedeserusadodentrodelasaplicacionesde
MicrosoftOffice,loquehaceposibleescribirsentenciasVisualBasicenformademacrospara
MicrosoftWord.
LosIDEproveenunmarcodetrabajoamigableparalamayoradeloslenguajesdeprogramacin
talescomoC++,PHP,Python,Java,C#,Delphi,VisualBasic,etc.Enalgunoslenguajes,unIDE
puedefuncionarcomounsistemaentiempodeejecucin,endondesepermiteutilizarellenguaje
deprogramacinenformainteractiva,sinnecesidaddetrabajoorientadoaarchivosdetexto,como
eselcasodeSmalltalkuObjectiveC.

Componentes

Uneditordetexto
Uncompilador
Unintrprete
Undepurador
UncliIntroduccinalaprogramacinente
Posibilidaddeofrecerunsistemadecontroldeversiones.
Factibilidadparaayudaenlaconstruccindeinterfacesgrficasdeusuario.

Lenguajes
Algunosentornossoncompatiblesconmltipleslenguajesdeprogramacin,comoEclipseo
NetBeans,ambosbasadosenJava;oMonoDevelop,basadoenC#.Tambinpuedeincorporarsela
funcionalidadparalenguajesalternativosmedianteelusodeplugins.Porejemplo,Eclipsey
NetBeanstienenpluginsparaC,C++,Ada,Perl,Python,RubyyPHP,entreotros.

Actitudesendiferentesplataformascomputacionales
MuchosdelosprogramadoresdeUnixargumentanquelasherramientasdelalneadecomandos
POSIXconstituyenunaIDE,aunqueunaconunestilodiferentedelainterfazyenelentornoUnix.
Adems,muchosprogramadoresdeUnixutilizanEmacsoVim.
EnlasdistintasplataformasdeMicrosoftWindows,lasherramientasdelneadecomandoparael
desarrolloraravezseutilizan.Enconsecuencia,haymuchassolucionescomercialesyno
comerciales,sinembargocadaunotieneundiseodiferentequecomnmentecrean
incompatibilidades.LamayoradelosprincipalesproveedoresdecompiladoresparaWindows
siguenofreciendocopiasgratuitasdesusherramientasdelneadecomando.
AdemslasherramientasdelsoftwarelibreGNU(gcc,gdb)estndisponiblesenmuchas
plataformas,incluyendoWindows.
Algunosentornoslibres,comoCode::Blocks,Eclipse,Lazarus,KDevelopyNetbeans,queasuvez
sedesarrollanutilizandounlenguajemultiplataforma(porejemplo,FreePascaloJava),seejecutan
endiversasplataformas,incluyendoWindows,GNU/Linux,yMacOSX.

FRAMEWORK
I.E.S.Fco.J.DeBurgos

10de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

Lapalabrainglesa"framework"(marcodetrabajo)define,entrminosgenerales,unconjunto
estandarizadodeconceptos,prcticasycriteriosparaenfocaruntipodeproblemticaparticularque
sirvecomoreferencia,paraenfrentaryresolvernuevosproblemasdendolesimilar.
Eneldesarrollode

software

,unframeworkoinfraestructuradigital,esunaestructuraconceptualy
tecnolgicadesoportedefinido,normalmenteconartefactosomdulosdesoftwareconcretos,con
basealacualotroproyectodesoftwarepuedesermsfcilmenteorganizadoydesarrollado.
Tpicamente,puedeincluirsoportedeprogramas,bibliotecas,yunlenguajeinterpretado,entreotras
herramientas,paraasayudaradesarrollaryunirlosdiferentescomponentesdeunproyecto.
Representaunaarquitecturade

software

quemodelalasrelacionesgeneralesdelasentidadesdel
dominio,yproveeunaestructurayunaespecialmetodologadetrabajo,lacualextiendeoutilizalas
aplicacionesdeldominio.

Introduccin
Sondiseadosconlaintencindefacilitareldesarrollodesoftware,permitiendoalosdiseadores
yprogramadorespasarmstiempoidentificandorequerimientosdesoftwarequetratandoconlos
tediososdetallesdebajoniveldeproveerunsistemafuncional.

Arquitectura
Dentrodeesteaspecto,podemosbasarnosenelmodeloMVC(Controlador=>Modelo=>Vista),
yaquedebemosfragmentarnuestraprogramacin.Tenemosquecontemplarestosaspectosbsicos
encuantoalaimplementacindenuestrosistema:

Modelo:

Estemiembrodelcontroladormanejalasoperacioneslgicas,ydemanejodeinformacin
(previamenteenviadaporsuancestro),pararesultardeunaformaexplicableysintitubeos.Cada
miembrodebesermeticulosamentellamado,consucorrectonombreyenprincipio,consu
verdaderanaturaleza:elmanejodeinformacin,sucomplementacindirecta.

Vista:

Alfinal,aestemiembrodelafamilialecorrespondedibujar,oexpresarlaltimaformadelos
datos:lainterfazgrficaqueinteractaconelusuariofinaldelprograma(GUI).Despusdetodo,a
estemiembroletocaevidenciarlainformacinobtenidahastahacerlallegaralcontrolador.Solo(e
inicialmente),nosesperademostrarlainformacin.

Controlador:

Conesteapartadopodemoscontrolarelacceso(inclusotodo)anuestraaplicacin,yestopuede
incluir:archivos,scripts,y/oprogramas;cualquiertipodeinformacinquepermitalainterfaz.As,
podremosdiversificarnuestrocontenidodeformadinmica,yesttica(alavez);pues,slo
debemoscontrolarciertosaspectos(comosehamencionadoantes).

Estructura
Dentrodelcontrolador,modeloovistapodemosmanejarlosiguiente:datos.Dependedenosotros
comointerpretarymanejarestos'datos'.Ahora,sabemosqueelnicodatodeunadireccinesttica
webes:conseguirunarchivofsicoeneldiscoduroodeinternet,etc.einterpretadoono,el
I.E.S.Fco.J.DeBurgos

11de12

Introduccinalaprogramacin

Prof.ManuelVarnCasado

servidorresponde.
Elmodelo,aligualqueelcontroladorylavista,manejatodoslosdatosqueserelacionenconsigo
(soloeselprocesomediodelaseparacinporcapasqueofrecelaarquitecturaMVC).Yslola
vista,puededemostrardichainformacin.Conlocualyahemosgeneradolajerarquadenuestro
programa:Controlador,ModeloyVista.

Lgica
Alparecer,debemosinyectarciertosobjetosdentrodesusparientesenestaaplicacin,soloas
compartirnherenciaycoherenciaensuaplicacin.
Rpidamente,paraunaaplicacinwebsencilladebemosestablecerestosobjetos:

Unabase(MVC)
Controlador:stedebesercapazdemanejarrutas,archivos,clases,mtodosy
funciones.
Modelo:escomounscripthabitualenelservidor,soloqueagrupadobajoun
'modelo'reutilizable.
Vista:comoincluyendocualquierarchivoennuestraejecucin,muysimple.
Unsistema
Enrutador:conlpodemosdividirnuestraspeticionessintantascondicionales.
Cargador

Frameworkparaaplicacionesweb
Unframeworkparaaplicacioneswebesunframeworkdiseadoparaapoyareldesarrollodesitios
webdinmicos,aplicacioneswebyserviciosweb.Estetipodeframeworksintentaaliviarelexceso
decargaasociadoconactividadescomunesusadasendesarrollosweb.Porejemplo,muchos
frameworkproporcionanbibliotecasparaaccederabasesdedatos,estructurasparaplantillasy
gestindesesiones,yconfrecuenciafacilitanlareutilizacindecdigo.

I.E.S.Fco.J.DeBurgos

12de12

S-ar putea să vă placă și