2 Unidad i Epoo Intro Paradig
-
Upload
henry-alejandro-caceres-tellez -
Category
Documents
-
view
220 -
download
0
Transcript of 2 Unidad i Epoo Intro Paradig
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 122
Autor Luis Heladio Garzoacuten Rodriacuteguez
OBJETIVO GENERAL
Propender porque el estudiante se apropie del conocimiento de conceptos sobreprogramacioacuten y los paradigmas de programacioacuten fundamentales en su formacioacutencomo ingeniero
OBJETIVOS ESPECIFICOS
Comprender los conceptos fundamentales de la programacioacuten y su importancia Conocer sobre los lenguajes de programacioacuten la evolucioacuten histoacuterica clasificacioacuten y
sus diferencias Conocer los atributos de un buen lenguaje de programacioacuten Comprender los modelos baacutesicos de los paradigmas de programacioacuten Diferenciar los paradigmas de programacioacuten y su importancia Profundizar mediante la investigacioacuten de los conceptos aquiacute tratados de parte del
estudiante
CONCEPTOS FUNDAMENTALES DE PROGRAMACIOacuteN
Es necesario conocer conceptos sobre programacioacuten para consolidar fundamentos quepermitan comprender para desempentildearse con eacutexito en el aacutembito de la programacioacutende computadores como parte del proceso de aprendizaje para asimilar y
familiarizarse con palabras y conceptos que seraacuten parte del bagaje de conocimientosnecesarios en esta disciplina
1 CONCEPTOS BASICOSDatosInformacioacutenProgramaLenguaje de programacioacutenInterpretadorCompiladorSoftwareProcesamiento de datos
11 DATOS
Los datos son la materia prima de la informacioacuten Los son atributos o caracteriacutesticasrelacionadas con un individuo objeto o suceso
Son ejemplos de datos nombre descripcioacuten fecha de nacimiento estatura cantidadde horas laboradas peso etc
UNIDAD I
INTRODUCCIOacuteN A LOS PRADIGMAS DE PROGRAMACIOacuteN
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 222
Autor Luis Heladio Garzoacuten RodriacuteguezEs necesario clasificar los datos que se va a utilizar en un programa con el fin deoptimizar la utilizacioacuten de la memoria del computador Para ello es necesario tener encuenta criterios como
a Utilizacioacuten Identificar claramente que papel desempentildeara el dato dentro delprograma Analizar si realizara alguna operacioacuten aritmeacutetica con elb Contenido Analizar que valores posibles puede almacenar el datoc Tamantildeo Para todos los datos es necesario tener en cuenta el nuacutemero de bytes
que puede ocupar Esto implica tener en cuenta el rango de valores que puedeaceptar de acuerdo a la clasificacioacuten que se elija Esto puede variar de acuerdoal lenguaje de programacioacuten utilizado Esta practica es muy importante porqueayuda en el propoacutesito de administrar adecuadamente la memoria principal delcomputador
Los datos en su forma baacutesica o simple se clasifican en
Numeacutericos
CaraacutecterLoacutegicos
Datos Numeacutericos
Dato numeacuterico es aquel cuyo valor y contenido esta compuesto por diacutegitos numeacutericosUn dato numeacuterico puede participar en operaciones aritmeacuteticas
Pero los datos numeacutericos se clasifican a su vez enhttpmsdnmicrosoftcomes-eslibraryae55hdtk(VS80)aspx httpwwwaulaclicesaccess2002b_3_2_2htm
EnterosReales
Se puede encontrar otras clasificaciones en los datos numeacutericos dependiendo dellenguaje de programacioacuten
Otros sitios de intereacuteshttpwwwtecnupfedu~vlopezdocenciacastellanotodoshtmlPIt4casnode9html
httpwwwtecnupfedu~vlopezdocenciacastellanotodoshtmlPIt4casnode14html
Datos Caraacutecter o cadena
Se considera que es de este tipo de dato a los datos cuyo valor esta compuesto por
caracteres que pueden formar una cadena que contenga uno o mas Tambieacuten seconocen con el nombre de datos alfanumeacutericos por que su valor contiene unacombinacioacuten de letras nuacutemeros yo siacutembolos especiales
Aunque se puede realizar operaciones aritmeacuteticas entre cadenas su resultado no seraacuteel esperado de acuerdo al operador escogido Por ejemplo sean las cadenas dato_1 ydato_2 se desea realizar una suma de sus contenidos y almacenarlo en dato_3
1 Supongamos que se asigna valores a los datos dato_1 = bdquo145‟ y dato_2 = bdquo862‟
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 322
Autor Luis Heladio Garzoacuten Rodriacuteguez2 Ahora si se propone la instruccioacuten suma asignando a dato_3 el resultado
dato_3 = dato_1 + dato_23 Lo que realmente se obtiene como valor almacenado en dato_3 no es la suma
de 145 mas 862 sino la cadena bdquo145862‟ lo que en programacioacuten se conocecomo concatenar cadenas de caracteres
Profundice mas al respecto
Datos Estructurados
Este pertenece al tipo de datos definidos por el usuario En el que se permiteconfigurar una combinacioacuten de datos de diferente tipo que no esta predefinido en ellenguaje de programacioacuten
En el paradigma de programacioacuten estructurada se les nombraba como registros En elparadigma de programacioacuten orientada a objetos se conocen como objetos
Es importante profundizar mas sobre este tipo de dato y sus variantes de acuerdo alparadigma de programacioacuten y el lenguaje de programacioacuten
12 INFORMACIOacuteN
Es el resultado que se obtiene del tratamiento de datos a traveacutes de procedimientosmanuales o automatizados mediante aplicativos de software que ofrecen solucioacuten anecesidades o solicitudes especificas que permitan el entendimiento de algunasituacioacuten o sirvan para la toma de decisiones
En este link encontrar mas sobre la definicioacuten de informacioacuten
httpeswikipediaorgwikiInformaciC3B3n Es necesario e importante que investigue mas definiciones al respecto
13 PROGRAMA
Un programa es un conjunto de instrucciones oacuterdenes u operaciones escritas en unlenguaje de programacioacuten ordenadas loacutegica y secuencialmente elaborada o disentildeadopor una persona para dar solucioacuten a una necesidad o problema especifico con el finproducir resultados o informacioacuten que el ordenador es capaz de entender y realizar enel orden correcto El programa debe ser de faacutecil utilizacioacuten
Los programas se pueden escribir o codificar en diferentes lenguajes de programacioacuten
14 LENGUAJE DE PROGRAMACIOacuteN
Los programas que ejecutan los ordenadores tienen que escribirse siguiendo unasnormas determinadas de manera que el ordenador entienda de queacute instruccionesconsta y de queacute manera tiene que ejecutarlas Este conjunto de normas se denominalenguaje de programacioacuten De la misma manera que las personas se comunican entreellas mediante un lenguaje los lenguajes de programacioacuten permiten la comunicacioacutenentre las personas y los ordenadores y tambieacuten entre ordenadores
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 422
Autor Luis Heladio Garzoacuten RodriacuteguezExiste una multitud de lenguajes diferentes cada uno pensado y adaptado a unanecesidad especiacutefica Los hay desde los maacutes proacuteximos al funcionamiento fiacutesico delordenador los lenguajes de bajo nivel hasta los que intentan reproducir modelos de la
realidad con diferentes grados de abstraccioacuten y sin tener en cuenta el hardware quepueda haber los lenguajes de alto nivel
141 Lenguajes de bajo nivel
1411 Lenguaje maacutequina
El lenguaje maacutequina consiste en el conjunto de instrucciones que un determinadoprocesador es capaz de entender y ejecutar Cada procesador tiene su propio lenguajemaacutequina y son notables las diferencias entre los distintos modelos de procesadoresLas instrucciones se refieren a movimientos de datos entre las distintas partes de laCPU del ordenador la memoria los registros canales de entradasalida etc y esnecesario especificar las direcciones concretas y el nuacutemero de bytes que hay queoperar Es decir especifican exactamente queacute tiene que hacer el ordenador pero esenormemente complicado y difiacutecil de utilizar Es el uacutenico lenguaje que entienderealmente el ordenador de manera que cualquier otro tiene que traducirse a lenguajemaacutequina
1412 Lenguaje ensamblador
El lenguaje ensamblador puede considerarse de bajo nivel porque estaacute orientado allenguaje maacutequina Sus instrucciones son muy similares a las del lenguaje maacutequinapero en vez de coacutedigos y nuacutemeros en binario utiliza siacutembolos mnemoteacutecnicos y cifrasdecimales De esta manera el significado de cada instruccioacuten es maacutes evidente y por lotanto maacutes faacutecil de recordar y utilizar que la sucesioacuten de ceros y unos del lenguaje
maacutequina Cada modelo de ordenador tiene su propio lenguaje ensamblador Unaherramienta denominada ensamblador convierte los coacutedigos de lenguaje ensambladoren un programa binario en un proceso bastante sencillo denominado ensamblaje
142 Lenguajes de alto nivel
Los lenguajes de alto nivel estaacuten maacutes orientados al problema que tienen que resolverque a la maacutequina Por esta razoacuten son independientes del ordenador y por lo tantopueden ser utilizados en cualquier tipo de maacutequina
Un programa escrito en un lenguaje de alto nivel programa fuente debe traducirse allenguaje maacutequina del ordenador que tiene que ejecutarlo Existen dos maneras
diferentes de realizar esta traduccioacuten
Interpretacioacuten que se lleva a teacutermino con un inteacuterprete del lenguaje encuestioacuten Este programa lee cada instruccioacuten del programa fuente la traduce acoacutedigo maacutequina y hace que la ejecute el ordenador de manera inmediata Es unproceso relativamente lento y por tanto se utiliza para aplicaciones pequentildeasy que no requieren gran velocidad Algunos lenguajes interpretados conocidosson BASIC con sus variantes lenguajes de procesamiento de comandos de lossistemas operativos o lenguajes de acceso a bases de datos como SQL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 522
Autor Luis Heladio Garzoacuten RodriacuteguezSQL
SQL (Structured Query Language) es un lenguaje no estrictamente de
programacioacuten Se trata de un lenguaje para interrogar y procesar informacioacuten enuna base de datos relacional
Fue desarrollado por IBM para las bases de datos de sus mainframes
Los mandos SQL se pueden utilizar para trabajar interactivamente con una basede datos o para insertarlos en un lenguaje de programacioacuten para hacer deinterfaz con una base de datos
Algunos de los sistemas de gestioacuten de bases de datos que utilizan SQL son DB2SQLDS Oracle Sybase SQLbase INFORMIX e Ingres
El siguiente ejemplo de SQL selecciona clientes con un liacutemite de creacutedito de por lomenos 100000 um y los ordena de maacutes a menos creacutedito
SELECT NOMBRE CIUDAD CODIGOPOSTALFROM CLIENTEWHERE LIMITECREDITO gt= 100000ORDER BY LIMITECREDITO DESC
Compilacioacuten Un programa denominado compilador traduce todo elprograma fuente a coacutedigo maacutequina con el que se obtiene el programaobjeto que puede ejecutarse tantas veces como sea necesario sin tener quetraducir cada vez El proceso de compilacioacuten es tedioso y lento y se debe
renovar cada vez que se hace un cambio en el programa fuente pero acambio el programa objeto se ejecuta a la velocidad maacutes alta posible Es laopcioacuten adecuada para aplicaciones complejas
Los lenguajes maacutes utilizados caen dentro de esta categoriacutea por ejemploFORTRAN COBOL IMS Pascal C y C++
FORTRAN
El lenguaje FORTRAN (Formula Translation) data de los antildeos cincuenta y todaviacutease utiliza en determinados aacutembitos
Su punto fuerte es el caacutelculo matemaacutetico especialmente con coma flotante esdecir la computacioacuten con nuacutemeros reales de gran precisioacuten En cambio nodispone de construcciones por programacioacuten modular ni de estructuras de controlavanzadas
A lo largo de los antildeos se ha estandarizado varias veces y las versiones maacutesconocidas son FORTRAN I FORTRAN II FORTRAN IV FORTRAN 77 yactualmente FORTRAN 90
Ha sido el lenguaje maacutes utilizado para caacutelculos cientiacuteficos complejos modelos deingenieriacutea estadiacutestica y procesamiento de sentildeal Tambieacuten es muy adaptable a
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 622
Autor Luis Heladio Garzoacuten Rodriacuteguezhardware especializado como por ejemplo superordenadores y ordenadoresparalelos
Un ejemplo de caacutelculo matemaacutetico con FORTRAN
PROGRAM Rad Simple FORTRAN program
REAL PRCIF (NOT (R = 00)) THEN
P = 31415926R = 25C = P RPRINT C = C
END IFEND
COBOL
COBOL (Common Business-Oriented Language) es un lenguaje orientado a laresolucioacuten de las necesidades de bancos y otras entidades financierasadministraciones faacutebricas o cualquier gran organizacioacuten que tenga que gestionarun volumen de datos importante
COBOL tiene una sintaxis recargada que intenta parecerse al lenguaje ingleacutes Unode sus puntos fuertes es la generacioacuten de informes ya que permite especificaruna gran variedad de formatos de salida
Un programa en COBOL consta de cuatro divisiones
Identificacioacuten permite identificar el programa su objetivo el autor y otrosdatos similares
Entorno enumera los recursos fiacutesicos que el programa puede necesitar parafacilitar asiacute la portabilidad entre ordenadores
Datos declara los datos del programa Procedimientos indica coacutemo se tienen que procesar los datos
COBOL se definioacute en 1960 y ha tenido varias revisiones La maacutes actual incluyecaracteriacutesticas de orientacioacuten a objetos y estructuras de control sofisticadas en unintento de modernizar el lenguaje y no perder toda la inversioacuten en software realizada ya que se calcula que es el lenguaje con que se han programado maacutes
liacuteneas de coacutedigoLos programas en COBOL acostumbran a ser bastante largos y sobrecargados yaque cualquier pequentildeo procedimiento requiere muchas liacuteneas A continuacioacuten sepresenta un ejemplo simplificado para calcular comisiones de vendedores
IDENTIFICATION DIVISIONPROGRAM-ID COMISION-VENDEDORAUTHOR DEPT-INFO
ENVIRONMENT DIVISIONINPUT-OUTPUT SECTIONFILE-CONTROL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 722
Autor Luis Heladio Garzoacuten RodriacuteguezSELECT FICHERO-VENDEDORES ASSIGN TO DISK
ACCESS MODE IS RANDOM ORGANIZATION IS RELATIVERELATIVE KEY IS NUMERO
SELECT FICHERO-VENTAS ASSIGN TO TAPE RESERVE NO AREASACCESS MODE IS SEQUENTIAL ORGANIZATION IS SEQUENTIALDATA DIVISION
FILE SECTIONFD FICHERO-VENDEDORES LABEL RECORD IS STANDARD
RECORDING MODE IS VRECORD CONTAINS 30 TO 60 CHARACTERSDATA RECORD IS VENDEDORES
01 VENDEDORES02 NOMBRE PICTURE X(50)02 NUMERO PICTURE 9(10)
FD FICHERO-VENTAS LABEL RECORD IS STANDARDRECORDING MODE IS F
RECORD CONTAINS 8DATA RECORD IS VENTA
01 VENTA PICTURE 9(8)WORKING STORAGE SECTION
77 PCT PICTURE 9(6)77 TOTAL PICTURE 9(6)
PROCEDURE DIVISIONINICIOOPEN INPUT FICHERO-VENDEDORES INPUT FICHERO-VENTASCLAVE
ADD 1 TO NUMEROLECTURA
READ FICHERO-VENDEDORES INVALID KEY GO TO FINAL-PROGREAD FICHERO-VENTAS AT END GO TO FINAL-PROGCALCUL
DIVIDE VENTA INTO 100 GIVING PCTMULTIPLY PCT BY 40 GIVING TOTAL
RESULTADODISPLAY NUMERO UPON PRINTERDISPLAY TOTAL UPON PRINTERGOTO CLAVE
FINAL-PROGCLOSE FICHERO-VENDEDORES AND FICHERO-VENTASSTOP RUN
IMS
El sistema IMS (Information Management System) se utiliza para consultar basesde datos tuvo una gran expansioacuten en los antildeos setenta Se trata de un productode IBM para las bases de datos de mainframes sobre el sistema MVS
IMSDB (IMSData Base) es la base de datos que funciona en un entorno deproceso por lotes
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 822
Autor Luis Heladio Garzoacuten RodriacuteguezIMSDC (IMSData Communications) es un programa necesario cuando se utilizainteractivamente y tambieacuten permite acceder a bases de datos DB2
PASCAL
Pascal es un lenguaje disentildeado inicialmente para ensentildear a programar Como tallenguaje educativo presenta una estructura perfectamente acadeacutemica de laprogramacioacuten estructurada Requiere una programacioacuten detallada todos lostipos datos y subrutinas se tienen que declarar antes de utilizarlos Estaacutefuertemente estructurado en bloques y cada uno de los cuales permite declarardatos y funciones y tambieacuten otros bloques de nivel inferior Asiacute se puedenestructurar los datos y los procedimientos en tantos niveles como resultenecesario
Es un lenguaje apropiado para aplicaciones geneacutericas aunque en muchas aacutereas
se ha sustituido por lenguajes orientados a objetos como C++ y JavaC
C es probablemente uno de los lenguajes maacutes utilizados actualmente Es unlenguaje estructurado pero tambieacuten permite una programacioacuten de bajo nivel locual lo hace adecuado para sistemas operativos (como Unix) y como software decontrol de perifeacutericos aunque se utiliza en todo un tipo de aplicaciones inclusoen las de maacutes alto nivel como por ejemplo libreriacuteas graacuteficas
C permite escribir raacutepidamente un coacutedigo muy optimizado y maacutes portable que enensamblador
El lenguaje C dispone de un conjunto completo de operadores aritmeacuteticosestructuras de datos sencillas subrutinas estructuras de control convencionalespunteros en memoria un potente procesador de macros y un amplio conjunto delibreriacuteas Tiene un primer nivel de modularizacioacuten de manera que los datospueden tener un aacutembito global o local en la funcioacuten donde se han definidoTambieacuten es un lenguaje fuertemente tipificado es decir que requiere declarartodos los datos con su tipo
Las distintas versiones de C se estandarizaron en 1990 en el denominado ANSI-C
Ejemplo de programa que cuenta el nuacutemero de caracteres de un texto y escribeel resultado por pantalla
include ltstdiohgtmain(int argc char argv[])
int cmpfor( cmp = 0 argv[0][cmp]=0 cmp++ )printf(d caracteresn cmp)
C++
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 922
Autor Luis Heladio Garzoacuten RodriacuteguezC++ es la evolucioacuten a orientacioacuten a objetos del lenguaje C Tiene una sintaxismuy parecida a la de C con varias extensiones para soportar clases herencia yotras caracteriacutesticas de orientacioacuten a objetos
C++ evolucionoacute raacutepidamente para convertirse en un lenguaje independienteactualmente es muy popular para el desarrollo de aplicaciones
C++ ofrece muchas de las estructuras de programacioacuten orientada a objetosherencia muacuteltiple tipificacioacuten estricta memoria dinaacutemica patrones geneacutericospolimorfismo control de excepciones y sobrecarga de operadores
Como derivado de C dispone de todas sus propiedades pero tambieacuten haheredado sus defectos como por ejemplo los punteros en memoria
C++ es uno de los lenguajes orientados a objetos maacutes utilizados y de los maacutes
perfeccionados A pesar de esto no tiene algunas de las caracteriacutesticas que seconsideran imprescindibles en un lenguaje orientado a objetos de uacuteltimageneracioacuten (concurrencia persistencia y garbage collection) aunque suscompiladores pueden generar programas muy compactos y que se ejecutan conmucha eficiencia
Como todos los lenguajes de programacioacuten orientada a objetos su estructuraprincipal es la que define una clase es decir el tipo de un objeto
A continuacioacuten se presenta un ejemplo de clase
class cercle public formaint radi datos de la clasefloat area() meacutetodos de la clase
Y un sencillo programa que escribe un mensaje de saludo por pantalla
include ltiostreamhgtinclude ltStringhgt
main(int argc char argv[])
String ss = new String(Hola)cout ltlt s ltlt endlcout ltlt Longitud del texto ltlt s-gtlength() ltlt endl
Uacuteltimamente han aparecido algunos lenguajes que se alejan de este modelo endiferentes sentidos Todos ellos se utilizan en la programacioacuten en entornosrelacionados con Internet que presentan caracteriacutesticas especiales
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 222
Autor Luis Heladio Garzoacuten RodriacuteguezEs necesario clasificar los datos que se va a utilizar en un programa con el fin deoptimizar la utilizacioacuten de la memoria del computador Para ello es necesario tener encuenta criterios como
a Utilizacioacuten Identificar claramente que papel desempentildeara el dato dentro delprograma Analizar si realizara alguna operacioacuten aritmeacutetica con elb Contenido Analizar que valores posibles puede almacenar el datoc Tamantildeo Para todos los datos es necesario tener en cuenta el nuacutemero de bytes
que puede ocupar Esto implica tener en cuenta el rango de valores que puedeaceptar de acuerdo a la clasificacioacuten que se elija Esto puede variar de acuerdoal lenguaje de programacioacuten utilizado Esta practica es muy importante porqueayuda en el propoacutesito de administrar adecuadamente la memoria principal delcomputador
Los datos en su forma baacutesica o simple se clasifican en
Numeacutericos
CaraacutecterLoacutegicos
Datos Numeacutericos
Dato numeacuterico es aquel cuyo valor y contenido esta compuesto por diacutegitos numeacutericosUn dato numeacuterico puede participar en operaciones aritmeacuteticas
Pero los datos numeacutericos se clasifican a su vez enhttpmsdnmicrosoftcomes-eslibraryae55hdtk(VS80)aspx httpwwwaulaclicesaccess2002b_3_2_2htm
EnterosReales
Se puede encontrar otras clasificaciones en los datos numeacutericos dependiendo dellenguaje de programacioacuten
Otros sitios de intereacuteshttpwwwtecnupfedu~vlopezdocenciacastellanotodoshtmlPIt4casnode9html
httpwwwtecnupfedu~vlopezdocenciacastellanotodoshtmlPIt4casnode14html
Datos Caraacutecter o cadena
Se considera que es de este tipo de dato a los datos cuyo valor esta compuesto por
caracteres que pueden formar una cadena que contenga uno o mas Tambieacuten seconocen con el nombre de datos alfanumeacutericos por que su valor contiene unacombinacioacuten de letras nuacutemeros yo siacutembolos especiales
Aunque se puede realizar operaciones aritmeacuteticas entre cadenas su resultado no seraacuteel esperado de acuerdo al operador escogido Por ejemplo sean las cadenas dato_1 ydato_2 se desea realizar una suma de sus contenidos y almacenarlo en dato_3
1 Supongamos que se asigna valores a los datos dato_1 = bdquo145‟ y dato_2 = bdquo862‟
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 322
Autor Luis Heladio Garzoacuten Rodriacuteguez2 Ahora si se propone la instruccioacuten suma asignando a dato_3 el resultado
dato_3 = dato_1 + dato_23 Lo que realmente se obtiene como valor almacenado en dato_3 no es la suma
de 145 mas 862 sino la cadena bdquo145862‟ lo que en programacioacuten se conocecomo concatenar cadenas de caracteres
Profundice mas al respecto
Datos Estructurados
Este pertenece al tipo de datos definidos por el usuario En el que se permiteconfigurar una combinacioacuten de datos de diferente tipo que no esta predefinido en ellenguaje de programacioacuten
En el paradigma de programacioacuten estructurada se les nombraba como registros En elparadigma de programacioacuten orientada a objetos se conocen como objetos
Es importante profundizar mas sobre este tipo de dato y sus variantes de acuerdo alparadigma de programacioacuten y el lenguaje de programacioacuten
12 INFORMACIOacuteN
Es el resultado que se obtiene del tratamiento de datos a traveacutes de procedimientosmanuales o automatizados mediante aplicativos de software que ofrecen solucioacuten anecesidades o solicitudes especificas que permitan el entendimiento de algunasituacioacuten o sirvan para la toma de decisiones
En este link encontrar mas sobre la definicioacuten de informacioacuten
httpeswikipediaorgwikiInformaciC3B3n Es necesario e importante que investigue mas definiciones al respecto
13 PROGRAMA
Un programa es un conjunto de instrucciones oacuterdenes u operaciones escritas en unlenguaje de programacioacuten ordenadas loacutegica y secuencialmente elaborada o disentildeadopor una persona para dar solucioacuten a una necesidad o problema especifico con el finproducir resultados o informacioacuten que el ordenador es capaz de entender y realizar enel orden correcto El programa debe ser de faacutecil utilizacioacuten
Los programas se pueden escribir o codificar en diferentes lenguajes de programacioacuten
14 LENGUAJE DE PROGRAMACIOacuteN
Los programas que ejecutan los ordenadores tienen que escribirse siguiendo unasnormas determinadas de manera que el ordenador entienda de queacute instruccionesconsta y de queacute manera tiene que ejecutarlas Este conjunto de normas se denominalenguaje de programacioacuten De la misma manera que las personas se comunican entreellas mediante un lenguaje los lenguajes de programacioacuten permiten la comunicacioacutenentre las personas y los ordenadores y tambieacuten entre ordenadores
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 422
Autor Luis Heladio Garzoacuten RodriacuteguezExiste una multitud de lenguajes diferentes cada uno pensado y adaptado a unanecesidad especiacutefica Los hay desde los maacutes proacuteximos al funcionamiento fiacutesico delordenador los lenguajes de bajo nivel hasta los que intentan reproducir modelos de la
realidad con diferentes grados de abstraccioacuten y sin tener en cuenta el hardware quepueda haber los lenguajes de alto nivel
141 Lenguajes de bajo nivel
1411 Lenguaje maacutequina
El lenguaje maacutequina consiste en el conjunto de instrucciones que un determinadoprocesador es capaz de entender y ejecutar Cada procesador tiene su propio lenguajemaacutequina y son notables las diferencias entre los distintos modelos de procesadoresLas instrucciones se refieren a movimientos de datos entre las distintas partes de laCPU del ordenador la memoria los registros canales de entradasalida etc y esnecesario especificar las direcciones concretas y el nuacutemero de bytes que hay queoperar Es decir especifican exactamente queacute tiene que hacer el ordenador pero esenormemente complicado y difiacutecil de utilizar Es el uacutenico lenguaje que entienderealmente el ordenador de manera que cualquier otro tiene que traducirse a lenguajemaacutequina
1412 Lenguaje ensamblador
El lenguaje ensamblador puede considerarse de bajo nivel porque estaacute orientado allenguaje maacutequina Sus instrucciones son muy similares a las del lenguaje maacutequinapero en vez de coacutedigos y nuacutemeros en binario utiliza siacutembolos mnemoteacutecnicos y cifrasdecimales De esta manera el significado de cada instruccioacuten es maacutes evidente y por lotanto maacutes faacutecil de recordar y utilizar que la sucesioacuten de ceros y unos del lenguaje
maacutequina Cada modelo de ordenador tiene su propio lenguaje ensamblador Unaherramienta denominada ensamblador convierte los coacutedigos de lenguaje ensambladoren un programa binario en un proceso bastante sencillo denominado ensamblaje
142 Lenguajes de alto nivel
Los lenguajes de alto nivel estaacuten maacutes orientados al problema que tienen que resolverque a la maacutequina Por esta razoacuten son independientes del ordenador y por lo tantopueden ser utilizados en cualquier tipo de maacutequina
Un programa escrito en un lenguaje de alto nivel programa fuente debe traducirse allenguaje maacutequina del ordenador que tiene que ejecutarlo Existen dos maneras
diferentes de realizar esta traduccioacuten
Interpretacioacuten que se lleva a teacutermino con un inteacuterprete del lenguaje encuestioacuten Este programa lee cada instruccioacuten del programa fuente la traduce acoacutedigo maacutequina y hace que la ejecute el ordenador de manera inmediata Es unproceso relativamente lento y por tanto se utiliza para aplicaciones pequentildeasy que no requieren gran velocidad Algunos lenguajes interpretados conocidosson BASIC con sus variantes lenguajes de procesamiento de comandos de lossistemas operativos o lenguajes de acceso a bases de datos como SQL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 522
Autor Luis Heladio Garzoacuten RodriacuteguezSQL
SQL (Structured Query Language) es un lenguaje no estrictamente de
programacioacuten Se trata de un lenguaje para interrogar y procesar informacioacuten enuna base de datos relacional
Fue desarrollado por IBM para las bases de datos de sus mainframes
Los mandos SQL se pueden utilizar para trabajar interactivamente con una basede datos o para insertarlos en un lenguaje de programacioacuten para hacer deinterfaz con una base de datos
Algunos de los sistemas de gestioacuten de bases de datos que utilizan SQL son DB2SQLDS Oracle Sybase SQLbase INFORMIX e Ingres
El siguiente ejemplo de SQL selecciona clientes con un liacutemite de creacutedito de por lomenos 100000 um y los ordena de maacutes a menos creacutedito
SELECT NOMBRE CIUDAD CODIGOPOSTALFROM CLIENTEWHERE LIMITECREDITO gt= 100000ORDER BY LIMITECREDITO DESC
Compilacioacuten Un programa denominado compilador traduce todo elprograma fuente a coacutedigo maacutequina con el que se obtiene el programaobjeto que puede ejecutarse tantas veces como sea necesario sin tener quetraducir cada vez El proceso de compilacioacuten es tedioso y lento y se debe
renovar cada vez que se hace un cambio en el programa fuente pero acambio el programa objeto se ejecuta a la velocidad maacutes alta posible Es laopcioacuten adecuada para aplicaciones complejas
Los lenguajes maacutes utilizados caen dentro de esta categoriacutea por ejemploFORTRAN COBOL IMS Pascal C y C++
FORTRAN
El lenguaje FORTRAN (Formula Translation) data de los antildeos cincuenta y todaviacutease utiliza en determinados aacutembitos
Su punto fuerte es el caacutelculo matemaacutetico especialmente con coma flotante esdecir la computacioacuten con nuacutemeros reales de gran precisioacuten En cambio nodispone de construcciones por programacioacuten modular ni de estructuras de controlavanzadas
A lo largo de los antildeos se ha estandarizado varias veces y las versiones maacutesconocidas son FORTRAN I FORTRAN II FORTRAN IV FORTRAN 77 yactualmente FORTRAN 90
Ha sido el lenguaje maacutes utilizado para caacutelculos cientiacuteficos complejos modelos deingenieriacutea estadiacutestica y procesamiento de sentildeal Tambieacuten es muy adaptable a
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 622
Autor Luis Heladio Garzoacuten Rodriacuteguezhardware especializado como por ejemplo superordenadores y ordenadoresparalelos
Un ejemplo de caacutelculo matemaacutetico con FORTRAN
PROGRAM Rad Simple FORTRAN program
REAL PRCIF (NOT (R = 00)) THEN
P = 31415926R = 25C = P RPRINT C = C
END IFEND
COBOL
COBOL (Common Business-Oriented Language) es un lenguaje orientado a laresolucioacuten de las necesidades de bancos y otras entidades financierasadministraciones faacutebricas o cualquier gran organizacioacuten que tenga que gestionarun volumen de datos importante
COBOL tiene una sintaxis recargada que intenta parecerse al lenguaje ingleacutes Unode sus puntos fuertes es la generacioacuten de informes ya que permite especificaruna gran variedad de formatos de salida
Un programa en COBOL consta de cuatro divisiones
Identificacioacuten permite identificar el programa su objetivo el autor y otrosdatos similares
Entorno enumera los recursos fiacutesicos que el programa puede necesitar parafacilitar asiacute la portabilidad entre ordenadores
Datos declara los datos del programa Procedimientos indica coacutemo se tienen que procesar los datos
COBOL se definioacute en 1960 y ha tenido varias revisiones La maacutes actual incluyecaracteriacutesticas de orientacioacuten a objetos y estructuras de control sofisticadas en unintento de modernizar el lenguaje y no perder toda la inversioacuten en software realizada ya que se calcula que es el lenguaje con que se han programado maacutes
liacuteneas de coacutedigoLos programas en COBOL acostumbran a ser bastante largos y sobrecargados yaque cualquier pequentildeo procedimiento requiere muchas liacuteneas A continuacioacuten sepresenta un ejemplo simplificado para calcular comisiones de vendedores
IDENTIFICATION DIVISIONPROGRAM-ID COMISION-VENDEDORAUTHOR DEPT-INFO
ENVIRONMENT DIVISIONINPUT-OUTPUT SECTIONFILE-CONTROL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 722
Autor Luis Heladio Garzoacuten RodriacuteguezSELECT FICHERO-VENDEDORES ASSIGN TO DISK
ACCESS MODE IS RANDOM ORGANIZATION IS RELATIVERELATIVE KEY IS NUMERO
SELECT FICHERO-VENTAS ASSIGN TO TAPE RESERVE NO AREASACCESS MODE IS SEQUENTIAL ORGANIZATION IS SEQUENTIALDATA DIVISION
FILE SECTIONFD FICHERO-VENDEDORES LABEL RECORD IS STANDARD
RECORDING MODE IS VRECORD CONTAINS 30 TO 60 CHARACTERSDATA RECORD IS VENDEDORES
01 VENDEDORES02 NOMBRE PICTURE X(50)02 NUMERO PICTURE 9(10)
FD FICHERO-VENTAS LABEL RECORD IS STANDARDRECORDING MODE IS F
RECORD CONTAINS 8DATA RECORD IS VENTA
01 VENTA PICTURE 9(8)WORKING STORAGE SECTION
77 PCT PICTURE 9(6)77 TOTAL PICTURE 9(6)
PROCEDURE DIVISIONINICIOOPEN INPUT FICHERO-VENDEDORES INPUT FICHERO-VENTASCLAVE
ADD 1 TO NUMEROLECTURA
READ FICHERO-VENDEDORES INVALID KEY GO TO FINAL-PROGREAD FICHERO-VENTAS AT END GO TO FINAL-PROGCALCUL
DIVIDE VENTA INTO 100 GIVING PCTMULTIPLY PCT BY 40 GIVING TOTAL
RESULTADODISPLAY NUMERO UPON PRINTERDISPLAY TOTAL UPON PRINTERGOTO CLAVE
FINAL-PROGCLOSE FICHERO-VENDEDORES AND FICHERO-VENTASSTOP RUN
IMS
El sistema IMS (Information Management System) se utiliza para consultar basesde datos tuvo una gran expansioacuten en los antildeos setenta Se trata de un productode IBM para las bases de datos de mainframes sobre el sistema MVS
IMSDB (IMSData Base) es la base de datos que funciona en un entorno deproceso por lotes
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 822
Autor Luis Heladio Garzoacuten RodriacuteguezIMSDC (IMSData Communications) es un programa necesario cuando se utilizainteractivamente y tambieacuten permite acceder a bases de datos DB2
PASCAL
Pascal es un lenguaje disentildeado inicialmente para ensentildear a programar Como tallenguaje educativo presenta una estructura perfectamente acadeacutemica de laprogramacioacuten estructurada Requiere una programacioacuten detallada todos lostipos datos y subrutinas se tienen que declarar antes de utilizarlos Estaacutefuertemente estructurado en bloques y cada uno de los cuales permite declarardatos y funciones y tambieacuten otros bloques de nivel inferior Asiacute se puedenestructurar los datos y los procedimientos en tantos niveles como resultenecesario
Es un lenguaje apropiado para aplicaciones geneacutericas aunque en muchas aacutereas
se ha sustituido por lenguajes orientados a objetos como C++ y JavaC
C es probablemente uno de los lenguajes maacutes utilizados actualmente Es unlenguaje estructurado pero tambieacuten permite una programacioacuten de bajo nivel locual lo hace adecuado para sistemas operativos (como Unix) y como software decontrol de perifeacutericos aunque se utiliza en todo un tipo de aplicaciones inclusoen las de maacutes alto nivel como por ejemplo libreriacuteas graacuteficas
C permite escribir raacutepidamente un coacutedigo muy optimizado y maacutes portable que enensamblador
El lenguaje C dispone de un conjunto completo de operadores aritmeacuteticosestructuras de datos sencillas subrutinas estructuras de control convencionalespunteros en memoria un potente procesador de macros y un amplio conjunto delibreriacuteas Tiene un primer nivel de modularizacioacuten de manera que los datospueden tener un aacutembito global o local en la funcioacuten donde se han definidoTambieacuten es un lenguaje fuertemente tipificado es decir que requiere declarartodos los datos con su tipo
Las distintas versiones de C se estandarizaron en 1990 en el denominado ANSI-C
Ejemplo de programa que cuenta el nuacutemero de caracteres de un texto y escribeel resultado por pantalla
include ltstdiohgtmain(int argc char argv[])
int cmpfor( cmp = 0 argv[0][cmp]=0 cmp++ )printf(d caracteresn cmp)
C++
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 922
Autor Luis Heladio Garzoacuten RodriacuteguezC++ es la evolucioacuten a orientacioacuten a objetos del lenguaje C Tiene una sintaxismuy parecida a la de C con varias extensiones para soportar clases herencia yotras caracteriacutesticas de orientacioacuten a objetos
C++ evolucionoacute raacutepidamente para convertirse en un lenguaje independienteactualmente es muy popular para el desarrollo de aplicaciones
C++ ofrece muchas de las estructuras de programacioacuten orientada a objetosherencia muacuteltiple tipificacioacuten estricta memoria dinaacutemica patrones geneacutericospolimorfismo control de excepciones y sobrecarga de operadores
Como derivado de C dispone de todas sus propiedades pero tambieacuten haheredado sus defectos como por ejemplo los punteros en memoria
C++ es uno de los lenguajes orientados a objetos maacutes utilizados y de los maacutes
perfeccionados A pesar de esto no tiene algunas de las caracteriacutesticas que seconsideran imprescindibles en un lenguaje orientado a objetos de uacuteltimageneracioacuten (concurrencia persistencia y garbage collection) aunque suscompiladores pueden generar programas muy compactos y que se ejecutan conmucha eficiencia
Como todos los lenguajes de programacioacuten orientada a objetos su estructuraprincipal es la que define una clase es decir el tipo de un objeto
A continuacioacuten se presenta un ejemplo de clase
class cercle public formaint radi datos de la clasefloat area() meacutetodos de la clase
Y un sencillo programa que escribe un mensaje de saludo por pantalla
include ltiostreamhgtinclude ltStringhgt
main(int argc char argv[])
String ss = new String(Hola)cout ltlt s ltlt endlcout ltlt Longitud del texto ltlt s-gtlength() ltlt endl
Uacuteltimamente han aparecido algunos lenguajes que se alejan de este modelo endiferentes sentidos Todos ellos se utilizan en la programacioacuten en entornosrelacionados con Internet que presentan caracteriacutesticas especiales
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 322
Autor Luis Heladio Garzoacuten Rodriacuteguez2 Ahora si se propone la instruccioacuten suma asignando a dato_3 el resultado
dato_3 = dato_1 + dato_23 Lo que realmente se obtiene como valor almacenado en dato_3 no es la suma
de 145 mas 862 sino la cadena bdquo145862‟ lo que en programacioacuten se conocecomo concatenar cadenas de caracteres
Profundice mas al respecto
Datos Estructurados
Este pertenece al tipo de datos definidos por el usuario En el que se permiteconfigurar una combinacioacuten de datos de diferente tipo que no esta predefinido en ellenguaje de programacioacuten
En el paradigma de programacioacuten estructurada se les nombraba como registros En elparadigma de programacioacuten orientada a objetos se conocen como objetos
Es importante profundizar mas sobre este tipo de dato y sus variantes de acuerdo alparadigma de programacioacuten y el lenguaje de programacioacuten
12 INFORMACIOacuteN
Es el resultado que se obtiene del tratamiento de datos a traveacutes de procedimientosmanuales o automatizados mediante aplicativos de software que ofrecen solucioacuten anecesidades o solicitudes especificas que permitan el entendimiento de algunasituacioacuten o sirvan para la toma de decisiones
En este link encontrar mas sobre la definicioacuten de informacioacuten
httpeswikipediaorgwikiInformaciC3B3n Es necesario e importante que investigue mas definiciones al respecto
13 PROGRAMA
Un programa es un conjunto de instrucciones oacuterdenes u operaciones escritas en unlenguaje de programacioacuten ordenadas loacutegica y secuencialmente elaborada o disentildeadopor una persona para dar solucioacuten a una necesidad o problema especifico con el finproducir resultados o informacioacuten que el ordenador es capaz de entender y realizar enel orden correcto El programa debe ser de faacutecil utilizacioacuten
Los programas se pueden escribir o codificar en diferentes lenguajes de programacioacuten
14 LENGUAJE DE PROGRAMACIOacuteN
Los programas que ejecutan los ordenadores tienen que escribirse siguiendo unasnormas determinadas de manera que el ordenador entienda de queacute instruccionesconsta y de queacute manera tiene que ejecutarlas Este conjunto de normas se denominalenguaje de programacioacuten De la misma manera que las personas se comunican entreellas mediante un lenguaje los lenguajes de programacioacuten permiten la comunicacioacutenentre las personas y los ordenadores y tambieacuten entre ordenadores
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 422
Autor Luis Heladio Garzoacuten RodriacuteguezExiste una multitud de lenguajes diferentes cada uno pensado y adaptado a unanecesidad especiacutefica Los hay desde los maacutes proacuteximos al funcionamiento fiacutesico delordenador los lenguajes de bajo nivel hasta los que intentan reproducir modelos de la
realidad con diferentes grados de abstraccioacuten y sin tener en cuenta el hardware quepueda haber los lenguajes de alto nivel
141 Lenguajes de bajo nivel
1411 Lenguaje maacutequina
El lenguaje maacutequina consiste en el conjunto de instrucciones que un determinadoprocesador es capaz de entender y ejecutar Cada procesador tiene su propio lenguajemaacutequina y son notables las diferencias entre los distintos modelos de procesadoresLas instrucciones se refieren a movimientos de datos entre las distintas partes de laCPU del ordenador la memoria los registros canales de entradasalida etc y esnecesario especificar las direcciones concretas y el nuacutemero de bytes que hay queoperar Es decir especifican exactamente queacute tiene que hacer el ordenador pero esenormemente complicado y difiacutecil de utilizar Es el uacutenico lenguaje que entienderealmente el ordenador de manera que cualquier otro tiene que traducirse a lenguajemaacutequina
1412 Lenguaje ensamblador
El lenguaje ensamblador puede considerarse de bajo nivel porque estaacute orientado allenguaje maacutequina Sus instrucciones son muy similares a las del lenguaje maacutequinapero en vez de coacutedigos y nuacutemeros en binario utiliza siacutembolos mnemoteacutecnicos y cifrasdecimales De esta manera el significado de cada instruccioacuten es maacutes evidente y por lotanto maacutes faacutecil de recordar y utilizar que la sucesioacuten de ceros y unos del lenguaje
maacutequina Cada modelo de ordenador tiene su propio lenguaje ensamblador Unaherramienta denominada ensamblador convierte los coacutedigos de lenguaje ensambladoren un programa binario en un proceso bastante sencillo denominado ensamblaje
142 Lenguajes de alto nivel
Los lenguajes de alto nivel estaacuten maacutes orientados al problema que tienen que resolverque a la maacutequina Por esta razoacuten son independientes del ordenador y por lo tantopueden ser utilizados en cualquier tipo de maacutequina
Un programa escrito en un lenguaje de alto nivel programa fuente debe traducirse allenguaje maacutequina del ordenador que tiene que ejecutarlo Existen dos maneras
diferentes de realizar esta traduccioacuten
Interpretacioacuten que se lleva a teacutermino con un inteacuterprete del lenguaje encuestioacuten Este programa lee cada instruccioacuten del programa fuente la traduce acoacutedigo maacutequina y hace que la ejecute el ordenador de manera inmediata Es unproceso relativamente lento y por tanto se utiliza para aplicaciones pequentildeasy que no requieren gran velocidad Algunos lenguajes interpretados conocidosson BASIC con sus variantes lenguajes de procesamiento de comandos de lossistemas operativos o lenguajes de acceso a bases de datos como SQL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 522
Autor Luis Heladio Garzoacuten RodriacuteguezSQL
SQL (Structured Query Language) es un lenguaje no estrictamente de
programacioacuten Se trata de un lenguaje para interrogar y procesar informacioacuten enuna base de datos relacional
Fue desarrollado por IBM para las bases de datos de sus mainframes
Los mandos SQL se pueden utilizar para trabajar interactivamente con una basede datos o para insertarlos en un lenguaje de programacioacuten para hacer deinterfaz con una base de datos
Algunos de los sistemas de gestioacuten de bases de datos que utilizan SQL son DB2SQLDS Oracle Sybase SQLbase INFORMIX e Ingres
El siguiente ejemplo de SQL selecciona clientes con un liacutemite de creacutedito de por lomenos 100000 um y los ordena de maacutes a menos creacutedito
SELECT NOMBRE CIUDAD CODIGOPOSTALFROM CLIENTEWHERE LIMITECREDITO gt= 100000ORDER BY LIMITECREDITO DESC
Compilacioacuten Un programa denominado compilador traduce todo elprograma fuente a coacutedigo maacutequina con el que se obtiene el programaobjeto que puede ejecutarse tantas veces como sea necesario sin tener quetraducir cada vez El proceso de compilacioacuten es tedioso y lento y se debe
renovar cada vez que se hace un cambio en el programa fuente pero acambio el programa objeto se ejecuta a la velocidad maacutes alta posible Es laopcioacuten adecuada para aplicaciones complejas
Los lenguajes maacutes utilizados caen dentro de esta categoriacutea por ejemploFORTRAN COBOL IMS Pascal C y C++
FORTRAN
El lenguaje FORTRAN (Formula Translation) data de los antildeos cincuenta y todaviacutease utiliza en determinados aacutembitos
Su punto fuerte es el caacutelculo matemaacutetico especialmente con coma flotante esdecir la computacioacuten con nuacutemeros reales de gran precisioacuten En cambio nodispone de construcciones por programacioacuten modular ni de estructuras de controlavanzadas
A lo largo de los antildeos se ha estandarizado varias veces y las versiones maacutesconocidas son FORTRAN I FORTRAN II FORTRAN IV FORTRAN 77 yactualmente FORTRAN 90
Ha sido el lenguaje maacutes utilizado para caacutelculos cientiacuteficos complejos modelos deingenieriacutea estadiacutestica y procesamiento de sentildeal Tambieacuten es muy adaptable a
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 622
Autor Luis Heladio Garzoacuten Rodriacuteguezhardware especializado como por ejemplo superordenadores y ordenadoresparalelos
Un ejemplo de caacutelculo matemaacutetico con FORTRAN
PROGRAM Rad Simple FORTRAN program
REAL PRCIF (NOT (R = 00)) THEN
P = 31415926R = 25C = P RPRINT C = C
END IFEND
COBOL
COBOL (Common Business-Oriented Language) es un lenguaje orientado a laresolucioacuten de las necesidades de bancos y otras entidades financierasadministraciones faacutebricas o cualquier gran organizacioacuten que tenga que gestionarun volumen de datos importante
COBOL tiene una sintaxis recargada que intenta parecerse al lenguaje ingleacutes Unode sus puntos fuertes es la generacioacuten de informes ya que permite especificaruna gran variedad de formatos de salida
Un programa en COBOL consta de cuatro divisiones
Identificacioacuten permite identificar el programa su objetivo el autor y otrosdatos similares
Entorno enumera los recursos fiacutesicos que el programa puede necesitar parafacilitar asiacute la portabilidad entre ordenadores
Datos declara los datos del programa Procedimientos indica coacutemo se tienen que procesar los datos
COBOL se definioacute en 1960 y ha tenido varias revisiones La maacutes actual incluyecaracteriacutesticas de orientacioacuten a objetos y estructuras de control sofisticadas en unintento de modernizar el lenguaje y no perder toda la inversioacuten en software realizada ya que se calcula que es el lenguaje con que se han programado maacutes
liacuteneas de coacutedigoLos programas en COBOL acostumbran a ser bastante largos y sobrecargados yaque cualquier pequentildeo procedimiento requiere muchas liacuteneas A continuacioacuten sepresenta un ejemplo simplificado para calcular comisiones de vendedores
IDENTIFICATION DIVISIONPROGRAM-ID COMISION-VENDEDORAUTHOR DEPT-INFO
ENVIRONMENT DIVISIONINPUT-OUTPUT SECTIONFILE-CONTROL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 722
Autor Luis Heladio Garzoacuten RodriacuteguezSELECT FICHERO-VENDEDORES ASSIGN TO DISK
ACCESS MODE IS RANDOM ORGANIZATION IS RELATIVERELATIVE KEY IS NUMERO
SELECT FICHERO-VENTAS ASSIGN TO TAPE RESERVE NO AREASACCESS MODE IS SEQUENTIAL ORGANIZATION IS SEQUENTIALDATA DIVISION
FILE SECTIONFD FICHERO-VENDEDORES LABEL RECORD IS STANDARD
RECORDING MODE IS VRECORD CONTAINS 30 TO 60 CHARACTERSDATA RECORD IS VENDEDORES
01 VENDEDORES02 NOMBRE PICTURE X(50)02 NUMERO PICTURE 9(10)
FD FICHERO-VENTAS LABEL RECORD IS STANDARDRECORDING MODE IS F
RECORD CONTAINS 8DATA RECORD IS VENTA
01 VENTA PICTURE 9(8)WORKING STORAGE SECTION
77 PCT PICTURE 9(6)77 TOTAL PICTURE 9(6)
PROCEDURE DIVISIONINICIOOPEN INPUT FICHERO-VENDEDORES INPUT FICHERO-VENTASCLAVE
ADD 1 TO NUMEROLECTURA
READ FICHERO-VENDEDORES INVALID KEY GO TO FINAL-PROGREAD FICHERO-VENTAS AT END GO TO FINAL-PROGCALCUL
DIVIDE VENTA INTO 100 GIVING PCTMULTIPLY PCT BY 40 GIVING TOTAL
RESULTADODISPLAY NUMERO UPON PRINTERDISPLAY TOTAL UPON PRINTERGOTO CLAVE
FINAL-PROGCLOSE FICHERO-VENDEDORES AND FICHERO-VENTASSTOP RUN
IMS
El sistema IMS (Information Management System) se utiliza para consultar basesde datos tuvo una gran expansioacuten en los antildeos setenta Se trata de un productode IBM para las bases de datos de mainframes sobre el sistema MVS
IMSDB (IMSData Base) es la base de datos que funciona en un entorno deproceso por lotes
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 822
Autor Luis Heladio Garzoacuten RodriacuteguezIMSDC (IMSData Communications) es un programa necesario cuando se utilizainteractivamente y tambieacuten permite acceder a bases de datos DB2
PASCAL
Pascal es un lenguaje disentildeado inicialmente para ensentildear a programar Como tallenguaje educativo presenta una estructura perfectamente acadeacutemica de laprogramacioacuten estructurada Requiere una programacioacuten detallada todos lostipos datos y subrutinas se tienen que declarar antes de utilizarlos Estaacutefuertemente estructurado en bloques y cada uno de los cuales permite declarardatos y funciones y tambieacuten otros bloques de nivel inferior Asiacute se puedenestructurar los datos y los procedimientos en tantos niveles como resultenecesario
Es un lenguaje apropiado para aplicaciones geneacutericas aunque en muchas aacutereas
se ha sustituido por lenguajes orientados a objetos como C++ y JavaC
C es probablemente uno de los lenguajes maacutes utilizados actualmente Es unlenguaje estructurado pero tambieacuten permite una programacioacuten de bajo nivel locual lo hace adecuado para sistemas operativos (como Unix) y como software decontrol de perifeacutericos aunque se utiliza en todo un tipo de aplicaciones inclusoen las de maacutes alto nivel como por ejemplo libreriacuteas graacuteficas
C permite escribir raacutepidamente un coacutedigo muy optimizado y maacutes portable que enensamblador
El lenguaje C dispone de un conjunto completo de operadores aritmeacuteticosestructuras de datos sencillas subrutinas estructuras de control convencionalespunteros en memoria un potente procesador de macros y un amplio conjunto delibreriacuteas Tiene un primer nivel de modularizacioacuten de manera que los datospueden tener un aacutembito global o local en la funcioacuten donde se han definidoTambieacuten es un lenguaje fuertemente tipificado es decir que requiere declarartodos los datos con su tipo
Las distintas versiones de C se estandarizaron en 1990 en el denominado ANSI-C
Ejemplo de programa que cuenta el nuacutemero de caracteres de un texto y escribeel resultado por pantalla
include ltstdiohgtmain(int argc char argv[])
int cmpfor( cmp = 0 argv[0][cmp]=0 cmp++ )printf(d caracteresn cmp)
C++
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 922
Autor Luis Heladio Garzoacuten RodriacuteguezC++ es la evolucioacuten a orientacioacuten a objetos del lenguaje C Tiene una sintaxismuy parecida a la de C con varias extensiones para soportar clases herencia yotras caracteriacutesticas de orientacioacuten a objetos
C++ evolucionoacute raacutepidamente para convertirse en un lenguaje independienteactualmente es muy popular para el desarrollo de aplicaciones
C++ ofrece muchas de las estructuras de programacioacuten orientada a objetosherencia muacuteltiple tipificacioacuten estricta memoria dinaacutemica patrones geneacutericospolimorfismo control de excepciones y sobrecarga de operadores
Como derivado de C dispone de todas sus propiedades pero tambieacuten haheredado sus defectos como por ejemplo los punteros en memoria
C++ es uno de los lenguajes orientados a objetos maacutes utilizados y de los maacutes
perfeccionados A pesar de esto no tiene algunas de las caracteriacutesticas que seconsideran imprescindibles en un lenguaje orientado a objetos de uacuteltimageneracioacuten (concurrencia persistencia y garbage collection) aunque suscompiladores pueden generar programas muy compactos y que se ejecutan conmucha eficiencia
Como todos los lenguajes de programacioacuten orientada a objetos su estructuraprincipal es la que define una clase es decir el tipo de un objeto
A continuacioacuten se presenta un ejemplo de clase
class cercle public formaint radi datos de la clasefloat area() meacutetodos de la clase
Y un sencillo programa que escribe un mensaje de saludo por pantalla
include ltiostreamhgtinclude ltStringhgt
main(int argc char argv[])
String ss = new String(Hola)cout ltlt s ltlt endlcout ltlt Longitud del texto ltlt s-gtlength() ltlt endl
Uacuteltimamente han aparecido algunos lenguajes que se alejan de este modelo endiferentes sentidos Todos ellos se utilizan en la programacioacuten en entornosrelacionados con Internet que presentan caracteriacutesticas especiales
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 422
Autor Luis Heladio Garzoacuten RodriacuteguezExiste una multitud de lenguajes diferentes cada uno pensado y adaptado a unanecesidad especiacutefica Los hay desde los maacutes proacuteximos al funcionamiento fiacutesico delordenador los lenguajes de bajo nivel hasta los que intentan reproducir modelos de la
realidad con diferentes grados de abstraccioacuten y sin tener en cuenta el hardware quepueda haber los lenguajes de alto nivel
141 Lenguajes de bajo nivel
1411 Lenguaje maacutequina
El lenguaje maacutequina consiste en el conjunto de instrucciones que un determinadoprocesador es capaz de entender y ejecutar Cada procesador tiene su propio lenguajemaacutequina y son notables las diferencias entre los distintos modelos de procesadoresLas instrucciones se refieren a movimientos de datos entre las distintas partes de laCPU del ordenador la memoria los registros canales de entradasalida etc y esnecesario especificar las direcciones concretas y el nuacutemero de bytes que hay queoperar Es decir especifican exactamente queacute tiene que hacer el ordenador pero esenormemente complicado y difiacutecil de utilizar Es el uacutenico lenguaje que entienderealmente el ordenador de manera que cualquier otro tiene que traducirse a lenguajemaacutequina
1412 Lenguaje ensamblador
El lenguaje ensamblador puede considerarse de bajo nivel porque estaacute orientado allenguaje maacutequina Sus instrucciones son muy similares a las del lenguaje maacutequinapero en vez de coacutedigos y nuacutemeros en binario utiliza siacutembolos mnemoteacutecnicos y cifrasdecimales De esta manera el significado de cada instruccioacuten es maacutes evidente y por lotanto maacutes faacutecil de recordar y utilizar que la sucesioacuten de ceros y unos del lenguaje
maacutequina Cada modelo de ordenador tiene su propio lenguaje ensamblador Unaherramienta denominada ensamblador convierte los coacutedigos de lenguaje ensambladoren un programa binario en un proceso bastante sencillo denominado ensamblaje
142 Lenguajes de alto nivel
Los lenguajes de alto nivel estaacuten maacutes orientados al problema que tienen que resolverque a la maacutequina Por esta razoacuten son independientes del ordenador y por lo tantopueden ser utilizados en cualquier tipo de maacutequina
Un programa escrito en un lenguaje de alto nivel programa fuente debe traducirse allenguaje maacutequina del ordenador que tiene que ejecutarlo Existen dos maneras
diferentes de realizar esta traduccioacuten
Interpretacioacuten que se lleva a teacutermino con un inteacuterprete del lenguaje encuestioacuten Este programa lee cada instruccioacuten del programa fuente la traduce acoacutedigo maacutequina y hace que la ejecute el ordenador de manera inmediata Es unproceso relativamente lento y por tanto se utiliza para aplicaciones pequentildeasy que no requieren gran velocidad Algunos lenguajes interpretados conocidosson BASIC con sus variantes lenguajes de procesamiento de comandos de lossistemas operativos o lenguajes de acceso a bases de datos como SQL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 522
Autor Luis Heladio Garzoacuten RodriacuteguezSQL
SQL (Structured Query Language) es un lenguaje no estrictamente de
programacioacuten Se trata de un lenguaje para interrogar y procesar informacioacuten enuna base de datos relacional
Fue desarrollado por IBM para las bases de datos de sus mainframes
Los mandos SQL se pueden utilizar para trabajar interactivamente con una basede datos o para insertarlos en un lenguaje de programacioacuten para hacer deinterfaz con una base de datos
Algunos de los sistemas de gestioacuten de bases de datos que utilizan SQL son DB2SQLDS Oracle Sybase SQLbase INFORMIX e Ingres
El siguiente ejemplo de SQL selecciona clientes con un liacutemite de creacutedito de por lomenos 100000 um y los ordena de maacutes a menos creacutedito
SELECT NOMBRE CIUDAD CODIGOPOSTALFROM CLIENTEWHERE LIMITECREDITO gt= 100000ORDER BY LIMITECREDITO DESC
Compilacioacuten Un programa denominado compilador traduce todo elprograma fuente a coacutedigo maacutequina con el que se obtiene el programaobjeto que puede ejecutarse tantas veces como sea necesario sin tener quetraducir cada vez El proceso de compilacioacuten es tedioso y lento y se debe
renovar cada vez que se hace un cambio en el programa fuente pero acambio el programa objeto se ejecuta a la velocidad maacutes alta posible Es laopcioacuten adecuada para aplicaciones complejas
Los lenguajes maacutes utilizados caen dentro de esta categoriacutea por ejemploFORTRAN COBOL IMS Pascal C y C++
FORTRAN
El lenguaje FORTRAN (Formula Translation) data de los antildeos cincuenta y todaviacutease utiliza en determinados aacutembitos
Su punto fuerte es el caacutelculo matemaacutetico especialmente con coma flotante esdecir la computacioacuten con nuacutemeros reales de gran precisioacuten En cambio nodispone de construcciones por programacioacuten modular ni de estructuras de controlavanzadas
A lo largo de los antildeos se ha estandarizado varias veces y las versiones maacutesconocidas son FORTRAN I FORTRAN II FORTRAN IV FORTRAN 77 yactualmente FORTRAN 90
Ha sido el lenguaje maacutes utilizado para caacutelculos cientiacuteficos complejos modelos deingenieriacutea estadiacutestica y procesamiento de sentildeal Tambieacuten es muy adaptable a
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 622
Autor Luis Heladio Garzoacuten Rodriacuteguezhardware especializado como por ejemplo superordenadores y ordenadoresparalelos
Un ejemplo de caacutelculo matemaacutetico con FORTRAN
PROGRAM Rad Simple FORTRAN program
REAL PRCIF (NOT (R = 00)) THEN
P = 31415926R = 25C = P RPRINT C = C
END IFEND
COBOL
COBOL (Common Business-Oriented Language) es un lenguaje orientado a laresolucioacuten de las necesidades de bancos y otras entidades financierasadministraciones faacutebricas o cualquier gran organizacioacuten que tenga que gestionarun volumen de datos importante
COBOL tiene una sintaxis recargada que intenta parecerse al lenguaje ingleacutes Unode sus puntos fuertes es la generacioacuten de informes ya que permite especificaruna gran variedad de formatos de salida
Un programa en COBOL consta de cuatro divisiones
Identificacioacuten permite identificar el programa su objetivo el autor y otrosdatos similares
Entorno enumera los recursos fiacutesicos que el programa puede necesitar parafacilitar asiacute la portabilidad entre ordenadores
Datos declara los datos del programa Procedimientos indica coacutemo se tienen que procesar los datos
COBOL se definioacute en 1960 y ha tenido varias revisiones La maacutes actual incluyecaracteriacutesticas de orientacioacuten a objetos y estructuras de control sofisticadas en unintento de modernizar el lenguaje y no perder toda la inversioacuten en software realizada ya que se calcula que es el lenguaje con que se han programado maacutes
liacuteneas de coacutedigoLos programas en COBOL acostumbran a ser bastante largos y sobrecargados yaque cualquier pequentildeo procedimiento requiere muchas liacuteneas A continuacioacuten sepresenta un ejemplo simplificado para calcular comisiones de vendedores
IDENTIFICATION DIVISIONPROGRAM-ID COMISION-VENDEDORAUTHOR DEPT-INFO
ENVIRONMENT DIVISIONINPUT-OUTPUT SECTIONFILE-CONTROL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 722
Autor Luis Heladio Garzoacuten RodriacuteguezSELECT FICHERO-VENDEDORES ASSIGN TO DISK
ACCESS MODE IS RANDOM ORGANIZATION IS RELATIVERELATIVE KEY IS NUMERO
SELECT FICHERO-VENTAS ASSIGN TO TAPE RESERVE NO AREASACCESS MODE IS SEQUENTIAL ORGANIZATION IS SEQUENTIALDATA DIVISION
FILE SECTIONFD FICHERO-VENDEDORES LABEL RECORD IS STANDARD
RECORDING MODE IS VRECORD CONTAINS 30 TO 60 CHARACTERSDATA RECORD IS VENDEDORES
01 VENDEDORES02 NOMBRE PICTURE X(50)02 NUMERO PICTURE 9(10)
FD FICHERO-VENTAS LABEL RECORD IS STANDARDRECORDING MODE IS F
RECORD CONTAINS 8DATA RECORD IS VENTA
01 VENTA PICTURE 9(8)WORKING STORAGE SECTION
77 PCT PICTURE 9(6)77 TOTAL PICTURE 9(6)
PROCEDURE DIVISIONINICIOOPEN INPUT FICHERO-VENDEDORES INPUT FICHERO-VENTASCLAVE
ADD 1 TO NUMEROLECTURA
READ FICHERO-VENDEDORES INVALID KEY GO TO FINAL-PROGREAD FICHERO-VENTAS AT END GO TO FINAL-PROGCALCUL
DIVIDE VENTA INTO 100 GIVING PCTMULTIPLY PCT BY 40 GIVING TOTAL
RESULTADODISPLAY NUMERO UPON PRINTERDISPLAY TOTAL UPON PRINTERGOTO CLAVE
FINAL-PROGCLOSE FICHERO-VENDEDORES AND FICHERO-VENTASSTOP RUN
IMS
El sistema IMS (Information Management System) se utiliza para consultar basesde datos tuvo una gran expansioacuten en los antildeos setenta Se trata de un productode IBM para las bases de datos de mainframes sobre el sistema MVS
IMSDB (IMSData Base) es la base de datos que funciona en un entorno deproceso por lotes
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 822
Autor Luis Heladio Garzoacuten RodriacuteguezIMSDC (IMSData Communications) es un programa necesario cuando se utilizainteractivamente y tambieacuten permite acceder a bases de datos DB2
PASCAL
Pascal es un lenguaje disentildeado inicialmente para ensentildear a programar Como tallenguaje educativo presenta una estructura perfectamente acadeacutemica de laprogramacioacuten estructurada Requiere una programacioacuten detallada todos lostipos datos y subrutinas se tienen que declarar antes de utilizarlos Estaacutefuertemente estructurado en bloques y cada uno de los cuales permite declarardatos y funciones y tambieacuten otros bloques de nivel inferior Asiacute se puedenestructurar los datos y los procedimientos en tantos niveles como resultenecesario
Es un lenguaje apropiado para aplicaciones geneacutericas aunque en muchas aacutereas
se ha sustituido por lenguajes orientados a objetos como C++ y JavaC
C es probablemente uno de los lenguajes maacutes utilizados actualmente Es unlenguaje estructurado pero tambieacuten permite una programacioacuten de bajo nivel locual lo hace adecuado para sistemas operativos (como Unix) y como software decontrol de perifeacutericos aunque se utiliza en todo un tipo de aplicaciones inclusoen las de maacutes alto nivel como por ejemplo libreriacuteas graacuteficas
C permite escribir raacutepidamente un coacutedigo muy optimizado y maacutes portable que enensamblador
El lenguaje C dispone de un conjunto completo de operadores aritmeacuteticosestructuras de datos sencillas subrutinas estructuras de control convencionalespunteros en memoria un potente procesador de macros y un amplio conjunto delibreriacuteas Tiene un primer nivel de modularizacioacuten de manera que los datospueden tener un aacutembito global o local en la funcioacuten donde se han definidoTambieacuten es un lenguaje fuertemente tipificado es decir que requiere declarartodos los datos con su tipo
Las distintas versiones de C se estandarizaron en 1990 en el denominado ANSI-C
Ejemplo de programa que cuenta el nuacutemero de caracteres de un texto y escribeel resultado por pantalla
include ltstdiohgtmain(int argc char argv[])
int cmpfor( cmp = 0 argv[0][cmp]=0 cmp++ )printf(d caracteresn cmp)
C++
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 922
Autor Luis Heladio Garzoacuten RodriacuteguezC++ es la evolucioacuten a orientacioacuten a objetos del lenguaje C Tiene una sintaxismuy parecida a la de C con varias extensiones para soportar clases herencia yotras caracteriacutesticas de orientacioacuten a objetos
C++ evolucionoacute raacutepidamente para convertirse en un lenguaje independienteactualmente es muy popular para el desarrollo de aplicaciones
C++ ofrece muchas de las estructuras de programacioacuten orientada a objetosherencia muacuteltiple tipificacioacuten estricta memoria dinaacutemica patrones geneacutericospolimorfismo control de excepciones y sobrecarga de operadores
Como derivado de C dispone de todas sus propiedades pero tambieacuten haheredado sus defectos como por ejemplo los punteros en memoria
C++ es uno de los lenguajes orientados a objetos maacutes utilizados y de los maacutes
perfeccionados A pesar de esto no tiene algunas de las caracteriacutesticas que seconsideran imprescindibles en un lenguaje orientado a objetos de uacuteltimageneracioacuten (concurrencia persistencia y garbage collection) aunque suscompiladores pueden generar programas muy compactos y que se ejecutan conmucha eficiencia
Como todos los lenguajes de programacioacuten orientada a objetos su estructuraprincipal es la que define una clase es decir el tipo de un objeto
A continuacioacuten se presenta un ejemplo de clase
class cercle public formaint radi datos de la clasefloat area() meacutetodos de la clase
Y un sencillo programa que escribe un mensaje de saludo por pantalla
include ltiostreamhgtinclude ltStringhgt
main(int argc char argv[])
String ss = new String(Hola)cout ltlt s ltlt endlcout ltlt Longitud del texto ltlt s-gtlength() ltlt endl
Uacuteltimamente han aparecido algunos lenguajes que se alejan de este modelo endiferentes sentidos Todos ellos se utilizan en la programacioacuten en entornosrelacionados con Internet que presentan caracteriacutesticas especiales
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 522
Autor Luis Heladio Garzoacuten RodriacuteguezSQL
SQL (Structured Query Language) es un lenguaje no estrictamente de
programacioacuten Se trata de un lenguaje para interrogar y procesar informacioacuten enuna base de datos relacional
Fue desarrollado por IBM para las bases de datos de sus mainframes
Los mandos SQL se pueden utilizar para trabajar interactivamente con una basede datos o para insertarlos en un lenguaje de programacioacuten para hacer deinterfaz con una base de datos
Algunos de los sistemas de gestioacuten de bases de datos que utilizan SQL son DB2SQLDS Oracle Sybase SQLbase INFORMIX e Ingres
El siguiente ejemplo de SQL selecciona clientes con un liacutemite de creacutedito de por lomenos 100000 um y los ordena de maacutes a menos creacutedito
SELECT NOMBRE CIUDAD CODIGOPOSTALFROM CLIENTEWHERE LIMITECREDITO gt= 100000ORDER BY LIMITECREDITO DESC
Compilacioacuten Un programa denominado compilador traduce todo elprograma fuente a coacutedigo maacutequina con el que se obtiene el programaobjeto que puede ejecutarse tantas veces como sea necesario sin tener quetraducir cada vez El proceso de compilacioacuten es tedioso y lento y se debe
renovar cada vez que se hace un cambio en el programa fuente pero acambio el programa objeto se ejecuta a la velocidad maacutes alta posible Es laopcioacuten adecuada para aplicaciones complejas
Los lenguajes maacutes utilizados caen dentro de esta categoriacutea por ejemploFORTRAN COBOL IMS Pascal C y C++
FORTRAN
El lenguaje FORTRAN (Formula Translation) data de los antildeos cincuenta y todaviacutease utiliza en determinados aacutembitos
Su punto fuerte es el caacutelculo matemaacutetico especialmente con coma flotante esdecir la computacioacuten con nuacutemeros reales de gran precisioacuten En cambio nodispone de construcciones por programacioacuten modular ni de estructuras de controlavanzadas
A lo largo de los antildeos se ha estandarizado varias veces y las versiones maacutesconocidas son FORTRAN I FORTRAN II FORTRAN IV FORTRAN 77 yactualmente FORTRAN 90
Ha sido el lenguaje maacutes utilizado para caacutelculos cientiacuteficos complejos modelos deingenieriacutea estadiacutestica y procesamiento de sentildeal Tambieacuten es muy adaptable a
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 622
Autor Luis Heladio Garzoacuten Rodriacuteguezhardware especializado como por ejemplo superordenadores y ordenadoresparalelos
Un ejemplo de caacutelculo matemaacutetico con FORTRAN
PROGRAM Rad Simple FORTRAN program
REAL PRCIF (NOT (R = 00)) THEN
P = 31415926R = 25C = P RPRINT C = C
END IFEND
COBOL
COBOL (Common Business-Oriented Language) es un lenguaje orientado a laresolucioacuten de las necesidades de bancos y otras entidades financierasadministraciones faacutebricas o cualquier gran organizacioacuten que tenga que gestionarun volumen de datos importante
COBOL tiene una sintaxis recargada que intenta parecerse al lenguaje ingleacutes Unode sus puntos fuertes es la generacioacuten de informes ya que permite especificaruna gran variedad de formatos de salida
Un programa en COBOL consta de cuatro divisiones
Identificacioacuten permite identificar el programa su objetivo el autor y otrosdatos similares
Entorno enumera los recursos fiacutesicos que el programa puede necesitar parafacilitar asiacute la portabilidad entre ordenadores
Datos declara los datos del programa Procedimientos indica coacutemo se tienen que procesar los datos
COBOL se definioacute en 1960 y ha tenido varias revisiones La maacutes actual incluyecaracteriacutesticas de orientacioacuten a objetos y estructuras de control sofisticadas en unintento de modernizar el lenguaje y no perder toda la inversioacuten en software realizada ya que se calcula que es el lenguaje con que se han programado maacutes
liacuteneas de coacutedigoLos programas en COBOL acostumbran a ser bastante largos y sobrecargados yaque cualquier pequentildeo procedimiento requiere muchas liacuteneas A continuacioacuten sepresenta un ejemplo simplificado para calcular comisiones de vendedores
IDENTIFICATION DIVISIONPROGRAM-ID COMISION-VENDEDORAUTHOR DEPT-INFO
ENVIRONMENT DIVISIONINPUT-OUTPUT SECTIONFILE-CONTROL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 722
Autor Luis Heladio Garzoacuten RodriacuteguezSELECT FICHERO-VENDEDORES ASSIGN TO DISK
ACCESS MODE IS RANDOM ORGANIZATION IS RELATIVERELATIVE KEY IS NUMERO
SELECT FICHERO-VENTAS ASSIGN TO TAPE RESERVE NO AREASACCESS MODE IS SEQUENTIAL ORGANIZATION IS SEQUENTIALDATA DIVISION
FILE SECTIONFD FICHERO-VENDEDORES LABEL RECORD IS STANDARD
RECORDING MODE IS VRECORD CONTAINS 30 TO 60 CHARACTERSDATA RECORD IS VENDEDORES
01 VENDEDORES02 NOMBRE PICTURE X(50)02 NUMERO PICTURE 9(10)
FD FICHERO-VENTAS LABEL RECORD IS STANDARDRECORDING MODE IS F
RECORD CONTAINS 8DATA RECORD IS VENTA
01 VENTA PICTURE 9(8)WORKING STORAGE SECTION
77 PCT PICTURE 9(6)77 TOTAL PICTURE 9(6)
PROCEDURE DIVISIONINICIOOPEN INPUT FICHERO-VENDEDORES INPUT FICHERO-VENTASCLAVE
ADD 1 TO NUMEROLECTURA
READ FICHERO-VENDEDORES INVALID KEY GO TO FINAL-PROGREAD FICHERO-VENTAS AT END GO TO FINAL-PROGCALCUL
DIVIDE VENTA INTO 100 GIVING PCTMULTIPLY PCT BY 40 GIVING TOTAL
RESULTADODISPLAY NUMERO UPON PRINTERDISPLAY TOTAL UPON PRINTERGOTO CLAVE
FINAL-PROGCLOSE FICHERO-VENDEDORES AND FICHERO-VENTASSTOP RUN
IMS
El sistema IMS (Information Management System) se utiliza para consultar basesde datos tuvo una gran expansioacuten en los antildeos setenta Se trata de un productode IBM para las bases de datos de mainframes sobre el sistema MVS
IMSDB (IMSData Base) es la base de datos que funciona en un entorno deproceso por lotes
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 822
Autor Luis Heladio Garzoacuten RodriacuteguezIMSDC (IMSData Communications) es un programa necesario cuando se utilizainteractivamente y tambieacuten permite acceder a bases de datos DB2
PASCAL
Pascal es un lenguaje disentildeado inicialmente para ensentildear a programar Como tallenguaje educativo presenta una estructura perfectamente acadeacutemica de laprogramacioacuten estructurada Requiere una programacioacuten detallada todos lostipos datos y subrutinas se tienen que declarar antes de utilizarlos Estaacutefuertemente estructurado en bloques y cada uno de los cuales permite declarardatos y funciones y tambieacuten otros bloques de nivel inferior Asiacute se puedenestructurar los datos y los procedimientos en tantos niveles como resultenecesario
Es un lenguaje apropiado para aplicaciones geneacutericas aunque en muchas aacutereas
se ha sustituido por lenguajes orientados a objetos como C++ y JavaC
C es probablemente uno de los lenguajes maacutes utilizados actualmente Es unlenguaje estructurado pero tambieacuten permite una programacioacuten de bajo nivel locual lo hace adecuado para sistemas operativos (como Unix) y como software decontrol de perifeacutericos aunque se utiliza en todo un tipo de aplicaciones inclusoen las de maacutes alto nivel como por ejemplo libreriacuteas graacuteficas
C permite escribir raacutepidamente un coacutedigo muy optimizado y maacutes portable que enensamblador
El lenguaje C dispone de un conjunto completo de operadores aritmeacuteticosestructuras de datos sencillas subrutinas estructuras de control convencionalespunteros en memoria un potente procesador de macros y un amplio conjunto delibreriacuteas Tiene un primer nivel de modularizacioacuten de manera que los datospueden tener un aacutembito global o local en la funcioacuten donde se han definidoTambieacuten es un lenguaje fuertemente tipificado es decir que requiere declarartodos los datos con su tipo
Las distintas versiones de C se estandarizaron en 1990 en el denominado ANSI-C
Ejemplo de programa que cuenta el nuacutemero de caracteres de un texto y escribeel resultado por pantalla
include ltstdiohgtmain(int argc char argv[])
int cmpfor( cmp = 0 argv[0][cmp]=0 cmp++ )printf(d caracteresn cmp)
C++
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 922
Autor Luis Heladio Garzoacuten RodriacuteguezC++ es la evolucioacuten a orientacioacuten a objetos del lenguaje C Tiene una sintaxismuy parecida a la de C con varias extensiones para soportar clases herencia yotras caracteriacutesticas de orientacioacuten a objetos
C++ evolucionoacute raacutepidamente para convertirse en un lenguaje independienteactualmente es muy popular para el desarrollo de aplicaciones
C++ ofrece muchas de las estructuras de programacioacuten orientada a objetosherencia muacuteltiple tipificacioacuten estricta memoria dinaacutemica patrones geneacutericospolimorfismo control de excepciones y sobrecarga de operadores
Como derivado de C dispone de todas sus propiedades pero tambieacuten haheredado sus defectos como por ejemplo los punteros en memoria
C++ es uno de los lenguajes orientados a objetos maacutes utilizados y de los maacutes
perfeccionados A pesar de esto no tiene algunas de las caracteriacutesticas que seconsideran imprescindibles en un lenguaje orientado a objetos de uacuteltimageneracioacuten (concurrencia persistencia y garbage collection) aunque suscompiladores pueden generar programas muy compactos y que se ejecutan conmucha eficiencia
Como todos los lenguajes de programacioacuten orientada a objetos su estructuraprincipal es la que define una clase es decir el tipo de un objeto
A continuacioacuten se presenta un ejemplo de clase
class cercle public formaint radi datos de la clasefloat area() meacutetodos de la clase
Y un sencillo programa que escribe un mensaje de saludo por pantalla
include ltiostreamhgtinclude ltStringhgt
main(int argc char argv[])
String ss = new String(Hola)cout ltlt s ltlt endlcout ltlt Longitud del texto ltlt s-gtlength() ltlt endl
Uacuteltimamente han aparecido algunos lenguajes que se alejan de este modelo endiferentes sentidos Todos ellos se utilizan en la programacioacuten en entornosrelacionados con Internet que presentan caracteriacutesticas especiales
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 622
Autor Luis Heladio Garzoacuten Rodriacuteguezhardware especializado como por ejemplo superordenadores y ordenadoresparalelos
Un ejemplo de caacutelculo matemaacutetico con FORTRAN
PROGRAM Rad Simple FORTRAN program
REAL PRCIF (NOT (R = 00)) THEN
P = 31415926R = 25C = P RPRINT C = C
END IFEND
COBOL
COBOL (Common Business-Oriented Language) es un lenguaje orientado a laresolucioacuten de las necesidades de bancos y otras entidades financierasadministraciones faacutebricas o cualquier gran organizacioacuten que tenga que gestionarun volumen de datos importante
COBOL tiene una sintaxis recargada que intenta parecerse al lenguaje ingleacutes Unode sus puntos fuertes es la generacioacuten de informes ya que permite especificaruna gran variedad de formatos de salida
Un programa en COBOL consta de cuatro divisiones
Identificacioacuten permite identificar el programa su objetivo el autor y otrosdatos similares
Entorno enumera los recursos fiacutesicos que el programa puede necesitar parafacilitar asiacute la portabilidad entre ordenadores
Datos declara los datos del programa Procedimientos indica coacutemo se tienen que procesar los datos
COBOL se definioacute en 1960 y ha tenido varias revisiones La maacutes actual incluyecaracteriacutesticas de orientacioacuten a objetos y estructuras de control sofisticadas en unintento de modernizar el lenguaje y no perder toda la inversioacuten en software realizada ya que se calcula que es el lenguaje con que se han programado maacutes
liacuteneas de coacutedigoLos programas en COBOL acostumbran a ser bastante largos y sobrecargados yaque cualquier pequentildeo procedimiento requiere muchas liacuteneas A continuacioacuten sepresenta un ejemplo simplificado para calcular comisiones de vendedores
IDENTIFICATION DIVISIONPROGRAM-ID COMISION-VENDEDORAUTHOR DEPT-INFO
ENVIRONMENT DIVISIONINPUT-OUTPUT SECTIONFILE-CONTROL
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 722
Autor Luis Heladio Garzoacuten RodriacuteguezSELECT FICHERO-VENDEDORES ASSIGN TO DISK
ACCESS MODE IS RANDOM ORGANIZATION IS RELATIVERELATIVE KEY IS NUMERO
SELECT FICHERO-VENTAS ASSIGN TO TAPE RESERVE NO AREASACCESS MODE IS SEQUENTIAL ORGANIZATION IS SEQUENTIALDATA DIVISION
FILE SECTIONFD FICHERO-VENDEDORES LABEL RECORD IS STANDARD
RECORDING MODE IS VRECORD CONTAINS 30 TO 60 CHARACTERSDATA RECORD IS VENDEDORES
01 VENDEDORES02 NOMBRE PICTURE X(50)02 NUMERO PICTURE 9(10)
FD FICHERO-VENTAS LABEL RECORD IS STANDARDRECORDING MODE IS F
RECORD CONTAINS 8DATA RECORD IS VENTA
01 VENTA PICTURE 9(8)WORKING STORAGE SECTION
77 PCT PICTURE 9(6)77 TOTAL PICTURE 9(6)
PROCEDURE DIVISIONINICIOOPEN INPUT FICHERO-VENDEDORES INPUT FICHERO-VENTASCLAVE
ADD 1 TO NUMEROLECTURA
READ FICHERO-VENDEDORES INVALID KEY GO TO FINAL-PROGREAD FICHERO-VENTAS AT END GO TO FINAL-PROGCALCUL
DIVIDE VENTA INTO 100 GIVING PCTMULTIPLY PCT BY 40 GIVING TOTAL
RESULTADODISPLAY NUMERO UPON PRINTERDISPLAY TOTAL UPON PRINTERGOTO CLAVE
FINAL-PROGCLOSE FICHERO-VENDEDORES AND FICHERO-VENTASSTOP RUN
IMS
El sistema IMS (Information Management System) se utiliza para consultar basesde datos tuvo una gran expansioacuten en los antildeos setenta Se trata de un productode IBM para las bases de datos de mainframes sobre el sistema MVS
IMSDB (IMSData Base) es la base de datos que funciona en un entorno deproceso por lotes
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 822
Autor Luis Heladio Garzoacuten RodriacuteguezIMSDC (IMSData Communications) es un programa necesario cuando se utilizainteractivamente y tambieacuten permite acceder a bases de datos DB2
PASCAL
Pascal es un lenguaje disentildeado inicialmente para ensentildear a programar Como tallenguaje educativo presenta una estructura perfectamente acadeacutemica de laprogramacioacuten estructurada Requiere una programacioacuten detallada todos lostipos datos y subrutinas se tienen que declarar antes de utilizarlos Estaacutefuertemente estructurado en bloques y cada uno de los cuales permite declarardatos y funciones y tambieacuten otros bloques de nivel inferior Asiacute se puedenestructurar los datos y los procedimientos en tantos niveles como resultenecesario
Es un lenguaje apropiado para aplicaciones geneacutericas aunque en muchas aacutereas
se ha sustituido por lenguajes orientados a objetos como C++ y JavaC
C es probablemente uno de los lenguajes maacutes utilizados actualmente Es unlenguaje estructurado pero tambieacuten permite una programacioacuten de bajo nivel locual lo hace adecuado para sistemas operativos (como Unix) y como software decontrol de perifeacutericos aunque se utiliza en todo un tipo de aplicaciones inclusoen las de maacutes alto nivel como por ejemplo libreriacuteas graacuteficas
C permite escribir raacutepidamente un coacutedigo muy optimizado y maacutes portable que enensamblador
El lenguaje C dispone de un conjunto completo de operadores aritmeacuteticosestructuras de datos sencillas subrutinas estructuras de control convencionalespunteros en memoria un potente procesador de macros y un amplio conjunto delibreriacuteas Tiene un primer nivel de modularizacioacuten de manera que los datospueden tener un aacutembito global o local en la funcioacuten donde se han definidoTambieacuten es un lenguaje fuertemente tipificado es decir que requiere declarartodos los datos con su tipo
Las distintas versiones de C se estandarizaron en 1990 en el denominado ANSI-C
Ejemplo de programa que cuenta el nuacutemero de caracteres de un texto y escribeel resultado por pantalla
include ltstdiohgtmain(int argc char argv[])
int cmpfor( cmp = 0 argv[0][cmp]=0 cmp++ )printf(d caracteresn cmp)
C++
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 922
Autor Luis Heladio Garzoacuten RodriacuteguezC++ es la evolucioacuten a orientacioacuten a objetos del lenguaje C Tiene una sintaxismuy parecida a la de C con varias extensiones para soportar clases herencia yotras caracteriacutesticas de orientacioacuten a objetos
C++ evolucionoacute raacutepidamente para convertirse en un lenguaje independienteactualmente es muy popular para el desarrollo de aplicaciones
C++ ofrece muchas de las estructuras de programacioacuten orientada a objetosherencia muacuteltiple tipificacioacuten estricta memoria dinaacutemica patrones geneacutericospolimorfismo control de excepciones y sobrecarga de operadores
Como derivado de C dispone de todas sus propiedades pero tambieacuten haheredado sus defectos como por ejemplo los punteros en memoria
C++ es uno de los lenguajes orientados a objetos maacutes utilizados y de los maacutes
perfeccionados A pesar de esto no tiene algunas de las caracteriacutesticas que seconsideran imprescindibles en un lenguaje orientado a objetos de uacuteltimageneracioacuten (concurrencia persistencia y garbage collection) aunque suscompiladores pueden generar programas muy compactos y que se ejecutan conmucha eficiencia
Como todos los lenguajes de programacioacuten orientada a objetos su estructuraprincipal es la que define una clase es decir el tipo de un objeto
A continuacioacuten se presenta un ejemplo de clase
class cercle public formaint radi datos de la clasefloat area() meacutetodos de la clase
Y un sencillo programa que escribe un mensaje de saludo por pantalla
include ltiostreamhgtinclude ltStringhgt
main(int argc char argv[])
String ss = new String(Hola)cout ltlt s ltlt endlcout ltlt Longitud del texto ltlt s-gtlength() ltlt endl
Uacuteltimamente han aparecido algunos lenguajes que se alejan de este modelo endiferentes sentidos Todos ellos se utilizan en la programacioacuten en entornosrelacionados con Internet que presentan caracteriacutesticas especiales
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 722
Autor Luis Heladio Garzoacuten RodriacuteguezSELECT FICHERO-VENDEDORES ASSIGN TO DISK
ACCESS MODE IS RANDOM ORGANIZATION IS RELATIVERELATIVE KEY IS NUMERO
SELECT FICHERO-VENTAS ASSIGN TO TAPE RESERVE NO AREASACCESS MODE IS SEQUENTIAL ORGANIZATION IS SEQUENTIALDATA DIVISION
FILE SECTIONFD FICHERO-VENDEDORES LABEL RECORD IS STANDARD
RECORDING MODE IS VRECORD CONTAINS 30 TO 60 CHARACTERSDATA RECORD IS VENDEDORES
01 VENDEDORES02 NOMBRE PICTURE X(50)02 NUMERO PICTURE 9(10)
FD FICHERO-VENTAS LABEL RECORD IS STANDARDRECORDING MODE IS F
RECORD CONTAINS 8DATA RECORD IS VENTA
01 VENTA PICTURE 9(8)WORKING STORAGE SECTION
77 PCT PICTURE 9(6)77 TOTAL PICTURE 9(6)
PROCEDURE DIVISIONINICIOOPEN INPUT FICHERO-VENDEDORES INPUT FICHERO-VENTASCLAVE
ADD 1 TO NUMEROLECTURA
READ FICHERO-VENDEDORES INVALID KEY GO TO FINAL-PROGREAD FICHERO-VENTAS AT END GO TO FINAL-PROGCALCUL
DIVIDE VENTA INTO 100 GIVING PCTMULTIPLY PCT BY 40 GIVING TOTAL
RESULTADODISPLAY NUMERO UPON PRINTERDISPLAY TOTAL UPON PRINTERGOTO CLAVE
FINAL-PROGCLOSE FICHERO-VENDEDORES AND FICHERO-VENTASSTOP RUN
IMS
El sistema IMS (Information Management System) se utiliza para consultar basesde datos tuvo una gran expansioacuten en los antildeos setenta Se trata de un productode IBM para las bases de datos de mainframes sobre el sistema MVS
IMSDB (IMSData Base) es la base de datos que funciona en un entorno deproceso por lotes
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 822
Autor Luis Heladio Garzoacuten RodriacuteguezIMSDC (IMSData Communications) es un programa necesario cuando se utilizainteractivamente y tambieacuten permite acceder a bases de datos DB2
PASCAL
Pascal es un lenguaje disentildeado inicialmente para ensentildear a programar Como tallenguaje educativo presenta una estructura perfectamente acadeacutemica de laprogramacioacuten estructurada Requiere una programacioacuten detallada todos lostipos datos y subrutinas se tienen que declarar antes de utilizarlos Estaacutefuertemente estructurado en bloques y cada uno de los cuales permite declarardatos y funciones y tambieacuten otros bloques de nivel inferior Asiacute se puedenestructurar los datos y los procedimientos en tantos niveles como resultenecesario
Es un lenguaje apropiado para aplicaciones geneacutericas aunque en muchas aacutereas
se ha sustituido por lenguajes orientados a objetos como C++ y JavaC
C es probablemente uno de los lenguajes maacutes utilizados actualmente Es unlenguaje estructurado pero tambieacuten permite una programacioacuten de bajo nivel locual lo hace adecuado para sistemas operativos (como Unix) y como software decontrol de perifeacutericos aunque se utiliza en todo un tipo de aplicaciones inclusoen las de maacutes alto nivel como por ejemplo libreriacuteas graacuteficas
C permite escribir raacutepidamente un coacutedigo muy optimizado y maacutes portable que enensamblador
El lenguaje C dispone de un conjunto completo de operadores aritmeacuteticosestructuras de datos sencillas subrutinas estructuras de control convencionalespunteros en memoria un potente procesador de macros y un amplio conjunto delibreriacuteas Tiene un primer nivel de modularizacioacuten de manera que los datospueden tener un aacutembito global o local en la funcioacuten donde se han definidoTambieacuten es un lenguaje fuertemente tipificado es decir que requiere declarartodos los datos con su tipo
Las distintas versiones de C se estandarizaron en 1990 en el denominado ANSI-C
Ejemplo de programa que cuenta el nuacutemero de caracteres de un texto y escribeel resultado por pantalla
include ltstdiohgtmain(int argc char argv[])
int cmpfor( cmp = 0 argv[0][cmp]=0 cmp++ )printf(d caracteresn cmp)
C++
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 922
Autor Luis Heladio Garzoacuten RodriacuteguezC++ es la evolucioacuten a orientacioacuten a objetos del lenguaje C Tiene una sintaxismuy parecida a la de C con varias extensiones para soportar clases herencia yotras caracteriacutesticas de orientacioacuten a objetos
C++ evolucionoacute raacutepidamente para convertirse en un lenguaje independienteactualmente es muy popular para el desarrollo de aplicaciones
C++ ofrece muchas de las estructuras de programacioacuten orientada a objetosherencia muacuteltiple tipificacioacuten estricta memoria dinaacutemica patrones geneacutericospolimorfismo control de excepciones y sobrecarga de operadores
Como derivado de C dispone de todas sus propiedades pero tambieacuten haheredado sus defectos como por ejemplo los punteros en memoria
C++ es uno de los lenguajes orientados a objetos maacutes utilizados y de los maacutes
perfeccionados A pesar de esto no tiene algunas de las caracteriacutesticas que seconsideran imprescindibles en un lenguaje orientado a objetos de uacuteltimageneracioacuten (concurrencia persistencia y garbage collection) aunque suscompiladores pueden generar programas muy compactos y que se ejecutan conmucha eficiencia
Como todos los lenguajes de programacioacuten orientada a objetos su estructuraprincipal es la que define una clase es decir el tipo de un objeto
A continuacioacuten se presenta un ejemplo de clase
class cercle public formaint radi datos de la clasefloat area() meacutetodos de la clase
Y un sencillo programa que escribe un mensaje de saludo por pantalla
include ltiostreamhgtinclude ltStringhgt
main(int argc char argv[])
String ss = new String(Hola)cout ltlt s ltlt endlcout ltlt Longitud del texto ltlt s-gtlength() ltlt endl
Uacuteltimamente han aparecido algunos lenguajes que se alejan de este modelo endiferentes sentidos Todos ellos se utilizan en la programacioacuten en entornosrelacionados con Internet que presentan caracteriacutesticas especiales
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 822
Autor Luis Heladio Garzoacuten RodriacuteguezIMSDC (IMSData Communications) es un programa necesario cuando se utilizainteractivamente y tambieacuten permite acceder a bases de datos DB2
PASCAL
Pascal es un lenguaje disentildeado inicialmente para ensentildear a programar Como tallenguaje educativo presenta una estructura perfectamente acadeacutemica de laprogramacioacuten estructurada Requiere una programacioacuten detallada todos lostipos datos y subrutinas se tienen que declarar antes de utilizarlos Estaacutefuertemente estructurado en bloques y cada uno de los cuales permite declarardatos y funciones y tambieacuten otros bloques de nivel inferior Asiacute se puedenestructurar los datos y los procedimientos en tantos niveles como resultenecesario
Es un lenguaje apropiado para aplicaciones geneacutericas aunque en muchas aacutereas
se ha sustituido por lenguajes orientados a objetos como C++ y JavaC
C es probablemente uno de los lenguajes maacutes utilizados actualmente Es unlenguaje estructurado pero tambieacuten permite una programacioacuten de bajo nivel locual lo hace adecuado para sistemas operativos (como Unix) y como software decontrol de perifeacutericos aunque se utiliza en todo un tipo de aplicaciones inclusoen las de maacutes alto nivel como por ejemplo libreriacuteas graacuteficas
C permite escribir raacutepidamente un coacutedigo muy optimizado y maacutes portable que enensamblador
El lenguaje C dispone de un conjunto completo de operadores aritmeacuteticosestructuras de datos sencillas subrutinas estructuras de control convencionalespunteros en memoria un potente procesador de macros y un amplio conjunto delibreriacuteas Tiene un primer nivel de modularizacioacuten de manera que los datospueden tener un aacutembito global o local en la funcioacuten donde se han definidoTambieacuten es un lenguaje fuertemente tipificado es decir que requiere declarartodos los datos con su tipo
Las distintas versiones de C se estandarizaron en 1990 en el denominado ANSI-C
Ejemplo de programa que cuenta el nuacutemero de caracteres de un texto y escribeel resultado por pantalla
include ltstdiohgtmain(int argc char argv[])
int cmpfor( cmp = 0 argv[0][cmp]=0 cmp++ )printf(d caracteresn cmp)
C++
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 922
Autor Luis Heladio Garzoacuten RodriacuteguezC++ es la evolucioacuten a orientacioacuten a objetos del lenguaje C Tiene una sintaxismuy parecida a la de C con varias extensiones para soportar clases herencia yotras caracteriacutesticas de orientacioacuten a objetos
C++ evolucionoacute raacutepidamente para convertirse en un lenguaje independienteactualmente es muy popular para el desarrollo de aplicaciones
C++ ofrece muchas de las estructuras de programacioacuten orientada a objetosherencia muacuteltiple tipificacioacuten estricta memoria dinaacutemica patrones geneacutericospolimorfismo control de excepciones y sobrecarga de operadores
Como derivado de C dispone de todas sus propiedades pero tambieacuten haheredado sus defectos como por ejemplo los punteros en memoria
C++ es uno de los lenguajes orientados a objetos maacutes utilizados y de los maacutes
perfeccionados A pesar de esto no tiene algunas de las caracteriacutesticas que seconsideran imprescindibles en un lenguaje orientado a objetos de uacuteltimageneracioacuten (concurrencia persistencia y garbage collection) aunque suscompiladores pueden generar programas muy compactos y que se ejecutan conmucha eficiencia
Como todos los lenguajes de programacioacuten orientada a objetos su estructuraprincipal es la que define una clase es decir el tipo de un objeto
A continuacioacuten se presenta un ejemplo de clase
class cercle public formaint radi datos de la clasefloat area() meacutetodos de la clase
Y un sencillo programa que escribe un mensaje de saludo por pantalla
include ltiostreamhgtinclude ltStringhgt
main(int argc char argv[])
String ss = new String(Hola)cout ltlt s ltlt endlcout ltlt Longitud del texto ltlt s-gtlength() ltlt endl
Uacuteltimamente han aparecido algunos lenguajes que se alejan de este modelo endiferentes sentidos Todos ellos se utilizan en la programacioacuten en entornosrelacionados con Internet que presentan caracteriacutesticas especiales
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 922
Autor Luis Heladio Garzoacuten RodriacuteguezC++ es la evolucioacuten a orientacioacuten a objetos del lenguaje C Tiene una sintaxismuy parecida a la de C con varias extensiones para soportar clases herencia yotras caracteriacutesticas de orientacioacuten a objetos
C++ evolucionoacute raacutepidamente para convertirse en un lenguaje independienteactualmente es muy popular para el desarrollo de aplicaciones
C++ ofrece muchas de las estructuras de programacioacuten orientada a objetosherencia muacuteltiple tipificacioacuten estricta memoria dinaacutemica patrones geneacutericospolimorfismo control de excepciones y sobrecarga de operadores
Como derivado de C dispone de todas sus propiedades pero tambieacuten haheredado sus defectos como por ejemplo los punteros en memoria
C++ es uno de los lenguajes orientados a objetos maacutes utilizados y de los maacutes
perfeccionados A pesar de esto no tiene algunas de las caracteriacutesticas que seconsideran imprescindibles en un lenguaje orientado a objetos de uacuteltimageneracioacuten (concurrencia persistencia y garbage collection) aunque suscompiladores pueden generar programas muy compactos y que se ejecutan conmucha eficiencia
Como todos los lenguajes de programacioacuten orientada a objetos su estructuraprincipal es la que define una clase es decir el tipo de un objeto
A continuacioacuten se presenta un ejemplo de clase
class cercle public formaint radi datos de la clasefloat area() meacutetodos de la clase
Y un sencillo programa que escribe un mensaje de saludo por pantalla
include ltiostreamhgtinclude ltStringhgt
main(int argc char argv[])
String ss = new String(Hola)cout ltlt s ltlt endlcout ltlt Longitud del texto ltlt s-gtlength() ltlt endl
Uacuteltimamente han aparecido algunos lenguajes que se alejan de este modelo endiferentes sentidos Todos ellos se utilizan en la programacioacuten en entornosrelacionados con Internet que presentan caracteriacutesticas especiales
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1022
Autor Luis Heladio Garzoacuten RodriacuteguezEl lenguaje Java por ejemplo tiene un modo de traduccioacuten a lenguaje maacutequinamixto En una primera fase se compila en un coacutedigo maacutequina universal queposteriormente es interpretado y ejecutado por un programa especiacutefico Este
programa puede utilizarse desde cualquier navegador de Internet y permitedistribuir programas objetos por red que pueden ejecutarse en cualquierordenador
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxisparecida a la de C++
Tiene un conjunto de prestaciones bastante amplio herencia tipificacioacuten dedatos estricta modularidad control de excepciones polimorfismo concurrenciacarga dinaacutemica de libreriacuteas garbage collection y una amplia coleccioacuten de libreriacuteas
estaacutendar En cambio no incluye algunas caracteriacutesticas que podriacutean comprometersu simplicidad y seguridad como punteros herencia muacuteltiple sobrecarga deoperadores o un preprocesador de macros
Como lenguaje orientado a objetos su estructura fundamental es la clase que selleva hasta las uacuteltimas consecuencias en Java no puede haber datos o funcionesglobales todas deben estar asociadas a una clase Las clases se pueden agruparen paquetes que facilitan mucho la portabilidad de sus aplicaciones Todos lospaquetes estaacuten organizados en una estructura jeraacuterquica que evita la aparicioacuten dedistintas variantes para la misma funcionalidad
Java se compila en un coacutedigo independiente de la plataforma bytecode queposteriormente es interpretado por una aplicacioacuten la maacutequina virtual de JavaHay una definicioacuten formal del bytecode que asegura la portabilidad
Java ademaacutes de resultar adecuado para programar aplicaciones normalespermite desarrollar programas hospedados en servidores web Estos programasse llaman applets Tienen la capacidad de ser distribuidos por la red en forma debytecode y poderse ejecutar en cualquier plataforma Presentan variasrestricciones para evitar problemas de seguridad
El mayor inconveniente de Java es que tiene un rendimiento bajo ya que altener que ser interpretado por la maacutequina virtual su velocidad de ejecucioacuten eslenta
A continuacioacuten se presenta un ejemplo de applet escrito en Java
import javaappletimport javaawt
public class AppletHola extends Applet
Este meacutetodo visualiza el mensajepublic void paint(Graphis g)
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1122
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1222
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1322
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1422
Autor Luis Heladio Garzoacuten Rodriacuteguez Sistema de ficheros Es la abstraccioacuten (en ficheros y directorios) que utilizan los
sistemas operativos para organizar el espacio de almacenamiento de los discosy otros soportes de informacioacuten y permitir un acceso adecuado por parte de las
aplicaciones Control de usuarios En sistemas que permiten un uso diferenciado parausuarios diferentes (multiusuario) es necesario establecer meacutetodos paraidentificar a cada usuario y para permitir a cada uno realizar las operaciones yacceder a los recursos que tengan autorizados
Uacuteltimamente tambieacuten se incluyen en el sistema operativo funciones de maacutes alto nivelque se han convertido en estaacutendares
Controlador de las comunicaciones por red correo electroacutenico y acceso aInternet
Herramientas de administracioacuten Los administradores del sistema son laspersonas encargadas de mantener y gestionar los recursos del sistemaoperativo Las herramientas de administracioacuten facilitan su trabajo en temascomo la gestioacuten de los usuarios y recursos y la monitorizacioacuten del rendimientodel sistema
Compiladores y libreriacuteas dinaacutemicas Muchos sistemas ofrecen herramientas ymeacutetodos estaacutendar para ayudar en la programacioacuten de aplicaciones
Control de la interfaz graacutefica La gestioacuten de todos los objetos (ventanas menuacutesiconos etc) que aparecen en una pantalla es bastante compleja asiacute como suutilizacioacuten por parte de las aplicaciones Los sistemas que ofrecen una interfazde uso para las aplicaciones tambieacuten son una gran ayuda para losprogramadores
Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho
el desarrollo de aplicaciones ya que permite a los analistas y programadoresconcentrarse en lo que es esencial en la aplicacioacuten
A lo largo del tiempo se ha desarrollado una multitud de sistemasoperativos con orientaciones muy diferentes Como tantos otros temas eninformaacutetica los sistemas operativos a menudo se presentan en familiasque los fabricantes van haciendo que evolucionen a lo largo del tiempo
Una de las liacuteneas de sistemas operativos maacutes conocidas es el sistema porexcelencia de los PC Se trata del sistema Windows desarrollado porMicrosoft Esta liacutenea empezoacute con el MS-DOS Era un sistema bastantelimitado y con una interfaz uacutenicamente de texto Cuando Microsoft vio que
era necesario ampliarlo y antildeadirle una interfaz graacutefica desarrolloacuteWindows que hasta el momento presenta varias versiones 311 9598 yMilenium en la versioacuten domeacutestica y NT y 2000 en la profesionalEl sistema operativo de los Macintosh presenta una evolucioacuten maacutes linealque Windows puesto que desde el primer momento ya teniacutea un entornograacutefico Actualmente coexisten las versiones 8 9 y 10En el campo de las workstations el sistema maacutes utilizado es Unix que presenta diferentes versiones seguacuten los fabricantes Es un sistemaoperativo con gran nuacutemero de funcionalidades y con una gran flexibilidadque le ha permitido adaptarse perfectamente a los ordenadores maacutesavanzados Siempre han existido versiones de Unix para la arquitectura
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1522
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1622
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1722
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1822
Autor Luis Heladio Garzoacuten RodriacuteguezPocas excepciones y casos especiales que recordarAspecto negativo Combinaciones incoherentes o ineficientesNaturalidad para la aplicacioacuten
Un lenguaje debe suministrar estructuras de datos operaciones y estructuras decontrol apropiadas al tipo de problemas al que se aplicaraacute asiacute como una sintaxis en laque se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccioacutenFacilidad para la verificacioacuten de programasEntorno de programacioacutenPortabilidad de los programasHomogeneidad en el tratamiento externo e interno de los conceptosCoste de uso
Coste de ejecucioacuten de programasCoste de traduccioacuten
Coste de creacioacuten prueba y uso de programasCoste de mantenimiento de programasBuena definicioacutenSintaxis y semaacutentica sean precisas in ambiguas legibles comprensibles
y a ser posible formales
MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DEPROGRAMACIOacuteN
Se entiende por paradigma de programacioacuten un modelo que sirve como una guiacutea alprogramador para disentildear aplicaciones Se pueden referir tanto a meacutetodos de
programacioacuten como a maneras de estructurar la informacioacuten y los diferenteselementos que componen una aplicacioacuten
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas locual ha permitido descartar a los que no son adecuados y mejorar los que ofreciacuteanbuenas soluciones Para un programador seguir estos modelos representa unagarantiacutea de la calidad del producto final y una mayor eficiencia ya que trabajaraacute conun meacutetodo sobradamente comprobado
Modelo Von Neumann Programacioacuten estructurada Programacioacuten orientada a objetos Modelo cliente-servidor
Modelo Von Neumann
El modelo Von Neumann propuesto por el matemaacutetico del mismo nombre define lasbases de la computacioacuten y de los ordenadores actuales Propone que los programas ydatos se representen en coacutedigo binario que haya un centro de control que ejecute elprograma secuencialmente o con saltos seguacuten indiquen las instrucciones y que acceday trabaje con los datos almacenados en dispositivo de memoria
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 1922
Autor Luis Heladio Garzoacuten RodriacuteguezMuchos lenguajes siguen este esquema con maacutes o menos nivel de abstraccioacutennotablemente los lenguajes maacutes conocidos Algunos de los que se apartan del modeloVon Neumann son los lenguajes funcionales (Lisp) y loacutegicos (Prolog)
Programacioacuten estructurada o modular
Esta teacutecnica propone una estructura loacutegica para escribir un programa Los datos seagrupan en estructuras de manera que las relaciones entre ellos queden reforzadas porla propia forma en que se agrupan Los procedimientos grandes se rompen en rutinaso funciones maacutes pequentildeas y modulares
Se desaconsejan las instrucciones de saltos incondicionales los famosos GOTO porqueoscurecen el flujo de control del programa al no quedar constancia de coacutemo se hallegado hasta aquel punto En cambio cuando desde un programa se llama a unafuncioacuten el sistema de control registra el punto del programa desde donde se hace elllamamiento para poder volver al mismo cuando la funcioacuten acaba Finalmente las
rutinas que tratan con datos relacionados pueden agruparse en moacutedulos Asiacute elobjetivo final es descomponer un programa en moacutedulos lo cual facilita su verificacioacuten ydepuracioacuten ya que cada uno puede probarse por separado
Esta organizacioacuten es imprescindible para poder desarrollar aplicaciones de ciertacomplejidad y tamantildeo Los lenguajes maacutes antiguos (por ejemplo FORTRAN COBOL oBASIC) requieren una disciplina por parte del programador para utilizar un esquemamodular En cambio todos los lenguajes posteriores imponen por su estructurasintaacutectica la organizacioacuten del coacutedigo en funciones y por lo tanto modular
Programacioacuten orientada a objetos
La evolucioacuten del modelo de programacioacuten modular es la programacioacuten orientada aobjetos Sin duda es una de las teacutecnicas maacutes complejas De hecho maacutes que unateacutecnica representa una manera nueva de encarar la programacioacuten
Antes de la orientacioacuten a objetos un programa era como ya se ha explicado unasecuencia loacutegica de instrucciones que seguiacutea el ordenador Por lo tanto el eacutenfasis seponiacutea en las instrucciones en la manera en que teniacutean que tratarse los datos Encambio la programacioacuten orientada a objetos se concentra en los datosestructuraacutendolos en objetos claramente definidos y en coacutemo tienen que manipularseLos programas se construyen en teacuterminos de los objetos que define el problema yutilizan funciones o meacutetodos que operan con estos objetos
En resumidas cuentas un objeto representa un concepto del problema con un conjunto
de datos y de meacutetodos Los datos del objeto soacutelo se pueden manipular con los meacutetodosdefinidos De esta manera un objeto pasa a ser una estructura compacta con unospuntos de acceso muy definidos y permite por lo tanto ser utilizado en diferentesaplicaciones con gran facilidad Esta capacidad de reutilizar un coacutedigo representa ungran ahorro de tiempo de programacioacuten
Otro beneficio de este esquema es que se puede definir un objeto en teacuterminos deotros de manera que el nuevo objeto puede aprovechar los datos y meacutetodos de los yaexistentes con lo cual se consigue de nuevo reutilizar coacutedigo Este mecanismo sellama herencia
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2022
Autor Luis Heladio Garzoacuten RodriacuteguezLa gran mayoriacutea de los lenguajes modernos siguen el modelo de orientacioacuten a objetosTal es el caso de los ya mencionados C++ y Java y tambieacuten otros lenguajes comoJavascript o Perl
Modelo cliente-servidor
La idea principal del modelo cliente-servidor es que existe un repositorio central comopor ejemplo una base de datos cuya informacioacuten se distribuye bajo pedido al conjuntode nodos que acceden al mismo La clave del funcionamiento de este modelo es que elrepositorio de informacioacuten estaacute centralizado de manera que los cambios que se hacense propagan automaacuteticamente a los clientes que piden la informacioacuten en cuestioacuten
El ordenador donde reside la informacioacuten y el software que la distribuye recibe elnombre de servidor mientras que la maacutequina que se comunica con el servidor obtienela informacioacuten y la visualiza para el usuario final recibe el nombre de cliente
La construccioacuten de aplicaciones basadas en el modelo cliente-servidor es relativamentesencilla A pesar de esto hay que tener en cuenta algunos problemas que aparecencuando un solo servidor tiene que atender las peticiones de muchos clientes de manerasimultaacutenea Se refieren tanto a problemas de acceso concurrente a los datos como aproblemas de velocidadCuando un servidor tiene que atender peticiones de consulta de informacioacuten dediferentes clientes al mismo tiempo tiene que asegurar que se atiende a todos porigual y que ninguno debe esperar mucho maacutes tiempo que los demaacutes
Los clientes por otro lado tambieacuten pueden hacer peticiones para modificar los datosdel servidor o para antildeadir otros nuevos En este caso el servidor tiene que asegurarque los datos de un cliente no se sobre-escriban a los de otro o que mientras se hace
una modificacioacuten no se pierda ninguacuten dato es decir el servidor tiene que asegurarsede la coherencia de sus propios datos Por esto los clientes modifican los datos enoperaciones denominadas transacciones en las que se asegura que todas lasmodificaciones se hacen completamente o que si hay una cancelacioacuten no se realizaninguna y los datos quedan intactos
El problema de la velocidad aparece cuando centenares de clientes quieren acceder almismo servidor y eacuteste literalmente no da abasto Para solucionar este problema haydiversas opciones
La maacutes inmediata es utilizar maacutequinas de maacutes potencia pero a la larga estosiempre acaba resultando insuficiente
Una mejor solucioacuten es optimizar el software del servidor para reducir al maacuteximo
los posibles retrasos o para pasar al lado del cliente procesamientos de losdatos que no sean estrictamente para su acceso o modificacioacuten eacuteste es unbuen meacutetodo porque cada vez maacutes los ordenadores clientes suelen disponer demaacutes capacidad de caacutelculo
Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener grancomplejidad por lo cual se estructuran en varias capas de manera que cada unaresuelve una pequentildea parte del problema y el conjunto ofrece la solucioacuten globalActualmente este modelo se emplea en un gran nuacutemero de aplicaciones desdesistemas bancarios de creacutedito y financieros hasta la distribucioacuten de cualquier tipo dedatos La red Internet seriacutea el ejemplo maacutes claro
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2122
Autor Luis Heladio Garzoacuten Rodriacuteguez
NUEVOS PARADIGMAS DE PROGRAMACIOacuteN
Un paradigma de programacioacuten provee (y determina) la visioacuten y meacutetodos de unprogramador en la construccioacuten de un programa o subprograma
Diferentes paradigmas resultan en diferentes estilos de programacioacuten y en diferentesformas de pensar la solucioacuten de problemas (una aplicacioacuten se construye con la solucioacuten
de muacuteltiples ldquoproblemasrdquo) Tipos de paradigmas de programacioacuten maacutes comunes
El paradigma imperativo o por procedimientos es considerado el maacutes comuacuten yestaacute representado por ejemplo por el C o por BASIC
El paradigma funcional estaacute representado por la familia de lenguajes (en particularScheme) ML o Haskell
El paradigma loacutegico un ejemplo es PROLOG
El paradigma orientado a objetos un lenguaje completamente orientado a objetoses Smalltalk
Paradigma imperativo o por procedimientos
Describe la programacioacuten como una secuencia instrucciones o comandos que cambianel estado de un programa El coacutedigo maacutequina en general estaacute basado en el paradigmaimperativo
La programacioacuten en el paradigma imperativo consiste en determinar queacute datos sonrequeridos para el caacutelculo asociar a esos datos unas direcciones de memoria yefectuar paso a paso una secuencia de transformaciones en los datos almacenados deforma que el estado final represente el resultado correcto
Ejemplos de lenguajes imperativos
BASIC
C
C
C++
Fortran
Pascal
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos
7262019 2 Unidad i Epoo Intro Paradig
httpslidepdfcomreaderfull2-unidad-i-epoo-intro-paradig 2222
Autor Luis Heladio Garzoacuten Rodriacuteguez
Java
Perl
PHP
Lua
Paradigma Funcional
La Programacioacuten funcional es un paradigma de programacioacuten declarativa basado en lautilizacioacuten de funciones matemaacuteticas
El objetivo del paradigma funcional es conseguir lenguajes expresivos ymatemaacuteticamente elegantes en los que no sea necesario bajar al nivel de la maacutequinapara describir el proceso llevado a cabo por el programa y evitando el concepto de
estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programase regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otrascada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante enel cual se pueda manejar maacutes faacutecilmente y asiacute los programas sean menos extensos ycomplejos
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer lasnecesidades del usuario con respecto a operaciones matemaacuteticas y convertirse en unlenguaje maacutes expresivo
Paradigma Loacutegico
La programacioacuten loacutegica consiste en la aplicacioacuten del corpus de conocimiento sobreloacutegica para el disentildeo de lenguajes de programacioacuten no debe confundirse con ladisciplina de la loacutegica computacional
La programacioacuten loacutegica comprende dos paradigmas de programacioacuten la programacioacutendeclarativa y la programacioacuten funcional La programacioacuten declarativa gira en torno alconcepto de predicado o relacioacuten entre elementos La programacioacuten funcional se basaen el concepto de funcioacuten (que no es maacutes que una evolucioacuten de los predicados) decorte maacutes matemaacutetico
Paradigma Orientado a Objetos
La Programacioacuten Orientada a Objetos (POO u OOP seguacuten sus siglas en ingleacutes) es unparadigma de programacioacuten que usa objetos y sus interacciones para disentildearaplicaciones y programas de computadora Estaacute basado en varias teacutecnicas incluyendoherencia modularidad polimorfismo y encapsulamiento Su uso se popularizoacute aprincipios de la deacutecada de 1990 Actualmente son muchos los lenguajes deprogramacioacuten que soportan la orientacioacuten a objetos
La programacioacuten orientada a objetos es una nueva forma de programar que trata deencontrar una solucioacuten a estos problemas Introduce nuevos conceptos que superan yampliacutean conceptos antiguos ya conocidos