Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación,...

59
Introduccion. Introduccion. Los lenguajes de programación surgieron para Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que están ha estado marcada por diferentes ideas que están relacionadas con el desarrollo del pensamiento y de relacionadas con el desarrollo del pensamiento y de la tecnología. la tecnología. TERCERA GENERACION DE LOS LENGUAJES DE TERCERA GENERACION DE LOS LENGUAJES DE PROGRAMACION: PROGRAMACION: A mediados de los 50 se comenzaron a crear A mediados de los 50 se comenzaron a crear lenguajes de programación que eran más propicios lenguajes de programación que eran más propicios para la elaboración de software que los lenguajes para la elaboración de software que los lenguajes ensamblador de bajo nivel. ensamblador de bajo nivel.

Transcript of Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación,...

Page 1: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Introduccion.Introduccion.

Los lenguajes de programación surgieron para facilitar las tareas de Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas programación, su evolución ha estado marcada por diferentes ideas que están relacionadas con el desarrollo del pensamiento y de la que están relacionadas con el desarrollo del pensamiento y de la tecnología. tecnología.

TERCERA GENERACION DE LOS LENGUAJES DE TERCERA GENERACION DE LOS LENGUAJES DE PROGRAMACION:PROGRAMACION:

A mediados de los 50 se comenzaron a crear lenguajes de A mediados de los 50 se comenzaron a crear lenguajes de programación que eran más propicios para la elaboración de programación que eran más propicios para la elaboración de software que los lenguajes ensamblador de bajo nivel.software que los lenguajes ensamblador de bajo nivel.

Page 2: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Sus instrucciones eran de alto nivel .Sus instrucciones eran de alto nivel . Sus instrucciones eran independientes de las máquinas.Sus instrucciones eran independientes de las máquinas. Se utilizaba un programa llamado traductor que traducía a lenguaje Se utilizaba un programa llamado traductor que traducía a lenguaje

máquina los programas escritos en lenguajes de alto nivel.máquina los programas escritos en lenguajes de alto nivel. Aparece el termino “compiladores” para referirse a estos programas Aparece el termino “compiladores” para referirse a estos programas

traductores.traductores. En 1957: aparece FORTRAN (FORmula TRANslating) sistema En 1957: aparece FORTRAN (FORmula TRANslating) sistema

traductor de fórmulas matemáticas.traductor de fórmulas matemáticas.

LENGUAJES DE TERCERA GENERACION:LENGUAJES DE TERCERA GENERACION: Primeros lenguajes.- FORTRAN y COBOL. ALGOL60. Primeros lenguajes.- FORTRAN y COBOL. ALGOL60. Después de estos aparecen.- BASIC (1965), SNOBOL, APL, PL/1 Después de estos aparecen.- BASIC (1965), SNOBOL, APL, PL/1

y SIMULA, entre otros. y SIMULA, entre otros. En los 70.- PASCAL, C, MODULA y PROLOG.En los 70.- PASCAL, C, MODULA y PROLOG. Más recientes .- Eiffel, Smalltalk, ADA, ML, C++ y Java. Más recientes .- Eiffel, Smalltalk, ADA, ML, C++ y Java.

Page 3: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Con la aparición de los lenguajes de tercera generación se alcanzó, en Con la aparición de los lenguajes de tercera generación se alcanzó, en gran medida la meta de la independiencia respecto a las máquinas. gran medida la meta de la independiencia respecto a las máquinas.

A partir de los años sesenta, empiezan a surgir diferentes lenguajes de A partir de los años sesenta, empiezan a surgir diferentes lenguajes de programación, atendiendo a diversos enfoques, características y programación, atendiendo a diversos enfoques, características y propósitos. Según estimados, actualmente existen alrededor de propósitos. Según estimados, actualmente existen alrededor de 2000 lenguajes de programación y continuamente están 2000 lenguajes de programación y continuamente están apareciendo otros más nuevos, que prometen hacer mejor uso de apareciendo otros más nuevos, que prometen hacer mejor uso de los recursos computacionales y facilitar el trabajo de los los recursos computacionales y facilitar el trabajo de los programadores.programadores.

Page 4: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

La cuarta generación:La cuarta generación:

Los lenguajes de cuarta generación pretenden superar los problemas Los lenguajes de cuarta generación pretenden superar los problemas surgidos de los lenguajes de tercera generación: surgidos de los lenguajes de tercera generación:

Acelerar el proceso de construcción de aplicaciones. Acelerar el proceso de construcción de aplicaciones.

Hacer aplicaciones fáciles y rápidas de modificar. Hacer aplicaciones fáciles y rápidas de modificar.

Minimizar los problemas de búsqueda y corrección de errores. Minimizar los problemas de búsqueda y corrección de errores.

Generar código ejecutable sin errores a partir de los requerimientos Generar código ejecutable sin errores a partir de los requerimientos deseados, dados con expresiones de alto nivel. deseados, dados con expresiones de alto nivel.

Hacer lenguajes fáciles de usar.Hacer lenguajes fáciles de usar.

Page 5: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Estos lenguajes permiten:Estos lenguajes permiten:

Generar aplicaciones con un número de líneas menor.Generar aplicaciones con un número de líneas menor.

Contar con un conjunto de instrucciones secuenciales.Contar con un conjunto de instrucciones secuenciales.

Hacer uso de una gran diversidad de mecanismos (el rellenado de Hacer uso de una gran diversidad de mecanismos (el rellenado de formularios, la interacción con la pantalla, etc.) formularios, la interacción con la pantalla, etc.)

Page 6: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Estos lenguajes se distinguen por formar parte de un entorno de Estos lenguajes se distinguen por formar parte de un entorno de desarrollo que comprende:desarrollo que comprende:

el manejador de una base de datos.el manejador de una base de datos. La administración de un diccionario de datos.La administración de un diccionario de datos. El control de accesos.El control de accesos. El manejo de la consistencia de la información.El manejo de la consistencia de la información. Otras características enfocadas a facilitar los programas de acceso Otras características enfocadas a facilitar los programas de acceso

y explotación de la información.y explotación de la información.

LENGUAJES DE CUARTA GENERACION:LENGUAJES DE CUARTA GENERACION: PROGRESS.PROGRESS. SYSBASE.SYSBASE. INFORMIX.INFORMIX. ORACLE.ORACLE.

Page 7: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

LENGUAJE DE LENGUAJE DE PROGRAMACION PROGRAMACION

ADAADA

Page 8: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

HISTORIA HISTORIA En los 70's hubo interés del Departamento de Defensa de En los 70's hubo interés del Departamento de Defensa de

EE.UU. (DoD) para desarrollar un lenguaje sencillo para EE.UU. (DoD) para desarrollar un lenguaje sencillo para usar en sistemas de tiempo real incrustados. usar en sistemas de tiempo real incrustados.

Se buscaron desarrolladores para este lenguaje y en pocos Se buscaron desarrolladores para este lenguaje y en pocos meses se obtuvieron 17 propuestas de las cuales 4 meses se obtuvieron 17 propuestas de las cuales 4

fueron elegidas. De las 4 finalistas nombre-código "red", fueron elegidas. De las 4 finalistas nombre-código "red", "green", "yellow" y "blue" el lenguaje "green" del francés "green", "yellow" y "blue" el lenguaje "green" del francés Jean Ichbiah fue elegido en 1979. Aunque originalmente Jean Ichbiah fue elegido en 1979. Aunque originalmente fue nombrado DoD-1 , el nombre fue cambiado a ADA fue nombrado DoD-1 , el nombre fue cambiado a ADA

en nombre de Ada Lovelace una pionera en en nombre de Ada Lovelace una pionera en computación y partidaria de Charles Babbage. computación y partidaria de Charles Babbage.

Pascal fue el punto de partida para el diseño de ADA Pascal fue el punto de partida para el diseño de ADA pero el lenguaje resultante es muy diferente en muchos pero el lenguaje resultante es muy diferente en muchos aspectos. Ada es más extenso, más complejo, permite aspectos. Ada es más extenso, más complejo, permite

ejecución concurrente, control en tiempo real de la ejecución concurrente, control en tiempo real de la ejecución, manejo de excepciones y tipos de datos ejecución, manejo de excepciones y tipos de datos

abstractos. abstractos.

Page 9: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Descripción de ADADescripción de ADA

Ada esta hecho para soportar la construcción de grandes Ada esta hecho para soportar la construcción de grandes programas. Un programa en Ada esta ordinariamente programas. Un programa en Ada esta ordinariamente

diseñado como una colección de grandes componentes diseñado como una colección de grandes componentes de software llamados "Packages" cada uno de software llamados "Packages" cada uno

representando un tipo de dato abstracto o un conjunto representando un tipo de dato abstracto o un conjunto de objetos de datos compartidos entre subprogramas. de objetos de datos compartidos entre subprogramas.

Un programa en Ada consiste de un procedimiento Un programa en Ada consiste de un procedimiento singular que sirve como programa principal, el cual singular que sirve como programa principal, el cual declara variables, y ejecuta sentencias, incluyendo declara variables, y ejecuta sentencias, incluyendo llamadas a otros subprogramas. Un programa Ada llamadas a otros subprogramas. Un programa Ada

puede envolver tareas que se ejecuten puede envolver tareas que se ejecuten concurrentemente, si esto pasa entonces estas son concurrentemente, si esto pasa entonces estas son

inicializadas directamente por el programa principal y inicializadas directamente por el programa principal y forman el nivel superior de la estructura del programa. forman el nivel superior de la estructura del programa.

Page 10: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Ada provee un gran número de tipos de datos, incluyendo Ada provee un gran número de tipos de datos, incluyendo enteros, reales, enumeraciones, boleanos, arreglos, enteros, reales, enumeraciones, boleanos, arreglos,

records, cadena de caracteres y apuntadores. records, cadena de caracteres y apuntadores. Abstracción y encapsulación de tipos de datos y Abstracción y encapsulación de tipos de datos y

operaciones definidas por el usuario son proveídas por operaciones definidas por el usuario son proveídas por la característica de "package". El control de secuencia la característica de "package". El control de secuencia

dentro de un subprograma utiliza expresiones y dentro de un subprograma utiliza expresiones y estructuras de control similares a Pascal. La estructura estructuras de control similares a Pascal. La estructura

de control de datos de Ada utiliza la organización de de control de datos de Ada utiliza la organización de estructura de bloque estática como en Pascal y además estructura de bloque estática como en Pascal y además el lenguaje prosee llamadas a referencias no estáticas.el lenguaje prosee llamadas a referencias no estáticas.

Page 11: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

TIPOS DE DATOS PRIMITIVOSTIPOS DE DATOS PRIMITIVOSVariables y Constantes.Variables y Constantes. Cualquier objeto de datos puede ser definido como variable o como Cualquier objeto de datos puede ser definido como variable o como

constante. constante. Cualquier declaración que empiece con la palabra Cualquier declaración que empiece con la palabra constantconstant es una es una

constante y se deberá asignar un valor el cual no se podrá cambiar constante y se deberá asignar un valor el cual no se podrá cambiar en la ejecución. en la ejecución.

Si se omite la palabra Si se omite la palabra constantconstant la misma declaración define un tipo la misma declaración define un tipo de dato variable, a la cual se le debe asignar un valor inicial y el de dato variable, a la cual se le debe asignar un valor inicial y el cual se podrá cambiar en la ejecución. cual se podrá cambiar en la ejecución.

Ejem: Ejem: MaxSize MaxSize constantconstant integer := 500; integer := 500;

CurrentSize integer := 0;CurrentSize integer := 0;

Tipos de Datos NumericosTipos de Datos Numericos Enteros, punto-flotante, punto-fijo y los tipos de datos básicos. Enteros, punto-flotante, punto-fijo y los tipos de datos básicos. Declaraciones son similares que en Pascal usando los atributos Declaraciones son similares que en Pascal usando los atributos

rangerange (para enteros) y (para enteros) y digitsdigits (para flotantes) los cuales especifican (para flotantes) los cuales especifican el rango de valores que podrá tomar el tipo de dato. el rango de valores que podrá tomar el tipo de dato.

Page 12: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Ejem: Ejem:

typetype DayOfYear DayOfYear is rangeis range 1..366; -- un valor entero de 1 a 366 1..366; -- un valor entero de 1 a 366 MyBirhtday: DayOfYear := 219; -- MyBirthday inicializada a MyBirhtday: DayOfYear := 219; -- MyBirthday inicializada a 219 219 typetype Result Result is digitsis digits 7 -- flotante de 7 digitos 7 -- flotante de 7 digitos Anwer: Result :=3.17; Anwer: Result :=3.17; -- varible de 7 digitos. Los -- varible de 7 digitos. Los tipos tipos

IntegerInteger y y floatfloat están predefinidos en el paquete estándar como: están predefinidos en el paquete estándar como:

typetype integer integer is rangeis range implementation definedimplementation defined;;

typetype float float is digitsis digits implementation definedimplementation defined;;

EnumeracionesEnumeraciones Enumeraciones deben de definirse usando un estilo como Pascal Enumeraciones deben de definirse usando un estilo como Pascal

de definición e implementación. de definición e implementación.

Ejem: Ejem:

typetype class class isis ( (Fresh, Soph, Junior, Senior);Fresh, Soph, Junior, Senior);

La representación en la ejecución usa el número de posición para La representación en la ejecución usa el número de posición para cada valor de la literal, empezando con 0 para el primer valor cada valor de la literal, empezando con 0 para el primer valor

listado, 1 para el segundo etc. listado, 1 para el segundo etc.

Page 13: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Tipos Caracter y BoleanoTipos Caracter y Boleano Estas son definidas en el paquete estándar para ser enumeraciones Estas son definidas en el paquete estándar para ser enumeraciones

específicas. específicas.

Tipo de Dato ApuntadorTipo de Dato Apuntador Un tipo apuntador llamado Un tipo apuntador llamado accessaccess, junto con una función primitiva , junto con una función primitiva

newnew, crean un nuevo objeto y regresa un apuntador a este , el cual , crean un nuevo objeto y regresa un apuntador a este , el cual debe ser asignado a una variable del tipo debe ser asignado a una variable del tipo accessaccess. .

Una variable no pude ser directamente declarada como Una variable no pude ser directamente declarada como accessaccess en en vez de esto se hace lo siguiente; vez de esto se hace lo siguiente;

typetype acces_typenameacces_typename is accessis access typenametypename;; y la variable deber ser declarada como un tipo de dato definido.y la variable deber ser declarada como un tipo de dato definido. Todas las variables del tipo Todas las variables del tipo accesacces tienen el valor NULL por default. tienen el valor NULL por default. Un bloque de almacenamiento puede ser solicitado para cualquier Un bloque de almacenamiento puede ser solicitado para cualquier

tipo de dato usando la sentencia: tipo de dato usando la sentencia: forfor acces_typenameacces_typename useuse expresionexpresion;; Donde expresión es el tamaño del bloque a pedir. Donde expresión es el tamaño del bloque a pedir.

Page 14: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

TIPO DE DATOS ESCTRUCTURADOSTIPO DE DATOS ESCTRUCTURADOS Vectores y ArreglosVectores y Arreglos Un arreglo de objetos puede ser declarado con cualquier número de Un arreglo de objetos puede ser declarado con cualquier número de

dimensiones, cualquier rango y cualquier tipo de componente. dimensiones, cualquier rango y cualquier tipo de componente. Ejem: Ejem: Table: Table: arrayarray (1..10, 1..20) of float; (1..10, 1..20) of float; crea una matriz de 10 X 20 de numeros reales; crea una matriz de 10 X 20 de numeros reales; Definición de tipos puede ser utilizada para crear clases de cualquier Definición de tipos puede ser utilizada para crear clases de cualquier

tipo de arreglo de objetos.tipo de arreglo de objetos.Ejem:Ejem: typetype Matrix Matrix is arrayis array (integer (integer range <>range <>,integer ,integer range <>range <>) of float;) of float;

donde los < > indican un campo que se debe llenar. donde los < > indican un campo que se debe llenar. InicializaciónInicialización: cualquier arreglo deber de ser inicializado en su : cualquier arreglo deber de ser inicializado en su

declaración. declaración.

Cadena de CaracteresCadena de Caracteres Las cadenas de caracteres son tratadas como un tipo de vector Las cadenas de caracteres son tratadas como un tipo de vector

predefinido usando otros dos tipos predefinidos positive (enteros) y predefinido usando otros dos tipos predefinidos positive (enteros) y character (enumerando los caracteres definidos en el paquete character (enumerando los caracteres definidos en el paquete estandar). estandar).

Page 15: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

typetype string string arrayarray (positive (positive range <>range <>) of character;) of character;Ejem: Ejem: MyString : string(1..30); MyString : string(1..30);

CONTROL DE SECUENCIACONTROL DE SECUENCIA La ejecución de Ada esta orientada a sentencias como FORTRAN y La ejecución de Ada esta orientada a sentencias como FORTRAN y

Pascal. Pascal.

ExpresionesExpresiones Expresiones en Ada permiten primitivas y funciones definidas para Expresiones en Ada permiten primitivas y funciones definidas para

ser combinadas en secuencias de manera usual. ser combinadas en secuencias de manera usual. Notación infijo es usada para la aritmética binaria, relacional y Notación infijo es usada para la aritmética binaria, relacional y

operaciones boleanas. operaciones boleanas. Notación prefija es usada para operaciones unarias. (+,-, y NOT), Notación prefija es usada para operaciones unarias. (+,-, y NOT),

los paréntesis deben de utilizarse para agrupar operaciones y la los paréntesis deben de utilizarse para agrupar operaciones y la precedencia es la misma que en Pascal. precedencia es la misma que en Pascal.

SentenciasSentencias Las estructuras de secuencias de control de sentencias son las Las estructuras de secuencias de control de sentencias son las

usuales sentencias condicionales (if y case) y las sentencias de usuales sentencias condicionales (if y case) y las sentencias de iteración (loop). iteración (loop).

Todas las sentencias de control terminan con las sentencia end Todas las sentencias de control terminan con las sentencia end seguida con la palabra de dicha sentencia ejem: end if, end loop. seguida con la palabra de dicha sentencia ejem: end if, end loop.

Page 16: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

SENTENCIAS CONDICIONALESSENTENCIAS CONDICIONALES

Sentencia IfSentencia If La sentencia if tiene la siguiente forma: La sentencia if tiene la siguiente forma:

ifif boolena expresionboolena expresion thenthen

secuencias de sentencias secuencias de sentencias

elsifelsif boolean expresionboolean expresion thenthen

secuencia de sentencias secuencia de sentencias

elseelse

secuencia de sentenciassecuencia de sentencias

end ifend if

Sentencia CASESentencia CASE La forma general de case es: La forma general de case es:

casecase expresion expresion isis

whenwhen choice choice | ...|| ...| choice choice => secuencia de sentencias; => secuencia de sentencias; …. ….

whenwhen othersothers => secuencia de sentencias; => secuencia de sentencias; end caseend case; ;

Page 17: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

SENTENCIAS DE ITERACIONSENTENCIAS DE ITERACION

Sentencia LoopSentencia Loop La sentencia básica de iteración tiene la siguiente forma. La sentencia básica de iteración tiene la siguiente forma.

looploop

- secuencia de sentencias- secuencia de sentencias

end loopend loop La forma de terminar una sentencia de iteración La forma de terminar una sentencia de iteración looploop se hace se hace

explicitamente con las sentencias explicitamente con las sentencias exitexit, , gotogoto o o returnreturn. .

Setencias controladas pueden ser creadas con las sentencias Setencias controladas pueden ser creadas con las sentencias whilewhile y y forfor. .

whilewhile boolean expresionboolean expresion

... ...

con con forfor hay dos formas. hay dos formas.

forfor variable name variable name in in discrete_rangediscrete_range; ;

forfor variable namevariable name in reversein reverse discrete_rangediscrete_range;;

Page 18: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

SUBPROGRAMAS Y MANEJO DE ALMACENAMIENTOSUBPROGRAMAS Y MANEJO DE ALMACENAMIENTO Procedimientos , funciones y tareas son los tres tipos de Procedimientos , funciones y tareas son los tres tipos de

subprogramas que Ada maneja. subprogramas que Ada maneja.

Funciones y ProcedimientosFunciones y Procedimientos Un procedimiento o función tiene la forma de una especificación: Un procedimiento o función tiene la forma de una especificación:

procedureprocedure procname( procname(formal-parametersformal-parameters) ) isis ... ...

functionfunction functioname( functioname(formal-parametersformal-parameters) return ) return result_typeresult_type isis

seguida por un cuerpo como sigue : seguida por un cuerpo como sigue :

secuencia de declaraciones secuencia de declaraciones

beginbegin

secuencia de sentenciassecuencia de sentencias

exceptionexception

manejadores de excepcionesmanejadores de excepciones

endend Los subprogramas pueden ser recursivos. La salida normal de un Los subprogramas pueden ser recursivos. La salida normal de un

procedimiento o tarea es con la ejecución de procedimiento o tarea es con la ejecución de returnreturn; ;

Page 19: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Ejemplo de un programa en ADAEjemplo de un programa en ADAHOLA MUNDO!!HOLA MUNDO!! % vi Hola.ada% vi Hola.ada with Text_IO; use Text_IO;with Text_IO; use Text_IO; procedure Doit is procedure Doit is procedure Hola(x: in integer) is procedure Hola(x: in integer) is begin begin if x=2 then if x=2 then put("Hola Mundo"); put("Hola Mundo"); else put ("Adios Mundo"); else put ("Adios Mundo"); end if end if end Hola;end Hola; y: integer;y: integer; beginbegin y:=2;y:=2; Hola(y);Hola(y); end Doit;end Doit; % ada Hola.ada% ada Hola.ada

%Hola%Hola

Page 20: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

with Ada.Command_Line; use Ada.Command_Line; Ada.Text_Io; use Ada.Text_Io;with Ada.Command_Line; use Ada.Command_Line; Ada.Text_Io; use Ada.Text_Io; procedure Ackermann isprocedure Ackermann is function ack (x : integer; y: integer) return integer isfunction ack (x : integer; y: integer) return integer is beginbegin if x = 0 thenif x = 0 then return y + 1;return y + 1; elsif y = 0 thenelsif y = 0 then return ack(x-1,1);return ack(x-1,1); elseelse return ack(x-1,ack(x,y-1));return ack(x-1,ack(x,y-1)); end if;end if; end ack;end ack; x,y,a : integer;x,y,a : integer; beginbegin if Argument_Count = 2 thenif Argument_Count = 2 then x := Integer'Value (Argument(1));x := Integer'Value (Argument(1)); y := Integer'Value (Argument(2));y := Integer'Value (Argument(2)); elsif Argument_Count = 1 thenelsif Argument_Count = 1 then x := 3;x := 3; y := Integer'Value (Argument(1));y := Integer'Value (Argument(1)); elseelse x := 3;x := 3; y := 3;y := 3; end if;end if; a := ack (x,y);a := ack (x,y); Put ("Ack (" & Integer'Image (x) & ",");Put ("Ack (" & Integer'Image (x) & ","); Put_Line (Integer'Image (y) & ") = " & Integer'Image (a));Put_Line (Integer'Image (y) & ") = " & Integer'Image (a)); end Ackermann;end Ackermann;

Page 21: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

withwith Text_IO, Text_IO, Ada.Numerics.Generic_Elementary_Functions; Ada.Numerics.Generic_Elementary_Functions; useuse TExt_IO, Ada.Numerics; TExt_IO, Ada.Numerics; procedureprocedure UsaMat UsaMat isis     x, y : float;     x, y : float;         packagepackage MiFloat_IO MiFloat_IO isis newnew Float_IO(float); Float_IO(float);         packagepackage Funciones Funciones isis newnew Generic_Elementary_Functions(float); Generic_Elementary_Functions(float);         useuse MiFloat_IO, Funciones; MiFloat_IO, Funciones; beginbegin     put("Dame un número real: ");     put("Dame un número real: ");     get(x);     get(x);     y := sqrt(x);     y := sqrt(x);     put("raíz cuadrada: ");     put("raíz cuadrada: ");     put(y);     put(y); endend UsaMat; UsaMat;

CLAUSULA DE CONTEXTO WITH Text_IO; etc.CLAUSULA DE CONTEXTO WITH Text_IO; etc.

Page 22: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

INTRODUCIONINTRODUCION Lenguaje de programación de alto nivel. Sus primeras versiones datan de Lenguaje de programación de alto nivel. Sus primeras versiones datan de

1970. Es un lenguaje de programación estructurado creado por Niklaus 1970. Es un lenguaje de programación estructurado creado por Niklaus Wirth, un profesor del Instituto tecnológico de Zurich, que lo creó pensando Wirth, un profesor del Instituto tecnológico de Zurich, que lo creó pensando en un lenguaje didáctico que enseñase la programación como "una en un lenguaje didáctico que enseñase la programación como "una disciplina sistemática basada en determinados conceptos fundamentales". disciplina sistemática basada en determinados conceptos fundamentales". Estos conceptos más tarde se tornarían motivo de controversia entre los Estos conceptos más tarde se tornarían motivo de controversia entre los que creen que este lenguaje tiene utilidad limitada a los medios que creen que este lenguaje tiene utilidad limitada a los medios académicos, como Brian W. Kernighan.académicos, como Brian W. Kernighan.

A partir de los años setenta se convirtió en el sucesor de ALGOL en el A partir de los años setenta se convirtió en el sucesor de ALGOL en el entorno universitario. Es un lenguaje estructurado, que permite construir entorno universitario. Es un lenguaje estructurado, que permite construir programas muy legibles. Wirth es también autor del lenguaje MODULA-2.programas muy legibles. Wirth es también autor del lenguaje MODULA-2.

El lenguaje de programación Delphi es una versión orientada a objetos El lenguaje de programación Delphi es una versión orientada a objetos moderna del lenguaje Pascal y es ampliamente utilizada en la industria de moderna del lenguaje Pascal y es ampliamente utilizada en la industria de software.software.

Page 23: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

ESTRUCTURA DE UN PROGRAMAESTRUCTURA DE UN PROGRAMA

La estructura general de un programa en Pascal es la siguiente:La estructura general de un programa en Pascal es la siguiente:

program identificador; {nombre o cabecera de programa se puede omitir}program identificador; {nombre o cabecera de programa se puede omitir} La sentencia Program se utiliza al comienzo del programa para especificar el nombre La sentencia Program se utiliza al comienzo del programa para especificar el nombre

del mismo. Este nombre no necesita ser el mismo del que posee el código fuente ni del mismo. Este nombre no necesita ser el mismo del que posee el código fuente ni del programa ya compilador. Se puede omitir si se desea.del programa ya compilador. Se puede omitir si se desea.

uses identificadoresuses identificadores;; Se usa para indicar al compilador las unidades (librerías de procedimientos) que se Se usa para indicar al compilador las unidades (librerías de procedimientos) que se

quieren utilizar en el programa y significa que a partir de esta línea se podrán utilizar quieren utilizar en el programa y significa que a partir de esta línea se podrán utilizar todas las rutinas (subprogramas, es decir, procedimientos y funciones) incluidas en todas las rutinas (subprogramas, es decir, procedimientos y funciones) incluidas en dichas unidades. dichas unidades.

Es decir se trata de un conjunto de procedimientos y funciones agrupadas en un Es decir se trata de un conjunto de procedimientos y funciones agrupadas en un archivo independiente, que podemos utilizar en cualquier de nuestros programas.archivo independiente, que podemos utilizar en cualquier de nuestros programas.

Podemos fabricar nuestras propias unidades (ya lo veremos en temas posteriores), o Podemos fabricar nuestras propias unidades (ya lo veremos en temas posteriores), o podemos utilizar unidades ya prediseñadas por Turbo Pascal, por ejemplo la unidad podemos utilizar unidades ya prediseñadas por Turbo Pascal, por ejemplo la unidad Crt contiene subprogramas para el control de la pantalla (como la sentencia Clrscr Crt contiene subprogramas para el control de la pantalla (como la sentencia Clrscr que limpia la pantalla).que limpia la pantalla).

Page 24: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

label lista de etiquetas;label lista de etiquetas; const definiciones de constantesconst definiciones de constantes type declaraciones de tipos de datos definidos por el usuariotype declaraciones de tipos de datos definidos por el usuario Tras la palabra TYPE deberemos colocar la declaración de tipo de datos Tras la palabra TYPE deberemos colocar la declaración de tipo de datos

que queremos utilizar en el programa. Este apartado se entenderá mejor en que queremos utilizar en el programa. Este apartado se entenderá mejor en el tema tipo de datos, y en los diferentes ejemplos que existen en él.el tema tipo de datos, y en los diferentes ejemplos que existen en él.

var declaraciones de variablesvar declaraciones de variables Tras la palabra VAR (también parte de declaración de datos) deberemos Tras la palabra VAR (también parte de declaración de datos) deberemos

colocar las variables que se utilizaran en todo nuestro programa, así como colocar las variables que se utilizaran en todo nuestro programa, así como indicar que tipo de datos se trata cada una de estas variables.indicar que tipo de datos se trata cada una de estas variables.

Todo dato necesario para la ejecución del programa principal (entre el begin Todo dato necesario para la ejecución del programa principal (entre el begin y end.) deberá estar declarado previamente en la parte de declaración de y end.) deberá estar declarado previamente en la parte de declaración de variables (VAR), esta forma de trabajar se suele denominar declaración variables (VAR), esta forma de trabajar se suele denominar declaración previa o declarar antes.previa o declarar antes.

Si utilizáramos una variable no declarada previamente, el programa nos Si utilizáramos una variable no declarada previamente, el programa nos devolverá un mensaje de error y no se ejecutará. Este tipo de error es muy devolverá un mensaje de error y no se ejecutará. Este tipo de error es muy frecuente aunque son fáciles de corregir y detectar.frecuente aunque son fáciles de corregir y detectar.

Page 25: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

procedure definiciones de procedimientosprocedure definiciones de procedimientos

function definiciones de funcionesfunction definiciones de funciones

begin {cuerpo del programa o programa principal sentencias de los begin {cuerpo del programa o programa principal sentencias de los programas programas

También denominado programa principal, se debe colocar entre la palabra También denominado programa principal, se debe colocar entre la palabra reservada reservada beginbegin y la palabra reservada y la palabra reservada end.end.(el punto inclusive). Entre este (el punto inclusive). Entre este begin-end. se deben escribir las sentencias o instrucciones que forman el begin-end. se deben escribir las sentencias o instrucciones que forman el programa y que indican al ordenador como tiene que resolver un problema. programa y que indican al ordenador como tiene que resolver un problema. Estas sentencias harán uso de los datos previamente declarados tras la Estas sentencias harán uso de los datos previamente declarados tras la parte parte var var del programa. Salvo que existan sentencias de salto o bifurcación, del programa. Salvo que existan sentencias de salto o bifurcación, la ejecución del programa se llevará a cabo de forma estrictamente la ejecución del programa se llevará a cabo de forma estrictamente secuencial, es decir, una instrucción o sentencia tras de otra.secuencial, es decir, una instrucción o sentencia tras de otra.

end.end.

Page 26: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

TIPOS DE DATOS.TIPOS DE DATOS.Enteros:Enteros: Byte: Números enteros comprendidos entre 0 y 255.Byte: Números enteros comprendidos entre 0 y 255. Integer: Enteros entre –32768 y 32767.Integer: Enteros entre –32768 y 32767. Longint: Enteros entre –2.147.483.648 y 2.147.483.647Longint: Enteros entre –2.147.483.648 y 2.147.483.647 Word: Enteros positivos entre 0 y 65535.Word: Enteros positivos entre 0 y 65535.

Reales:Reales: Los tipos de datos reales representan al conjunto de los números reales. Todo Los tipos de datos reales representan al conjunto de los números reales. Todo

número se puede representar como un real, aunque su representación interna no es número se puede representar como un real, aunque su representación interna no es la misma.la misma.

Real: 2.910-39 ... 1.71038 (11-12 cifras)Real: 2.910-39 ... 1.71038 (11-12 cifras) Single: 1.510-45 ... 3.41038 (7-8 cifras)Single: 1.510-45 ... 3.41038 (7-8 cifras) Double: 5.010-324 ... 1.710308 (15-16 cifras)Double: 5.010-324 ... 1.710308 (15-16 cifras) Extended: 1.910-4932 ... 1.1104932 (19-20 cifras)Extended: 1.910-4932 ... 1.1104932 (19-20 cifras) Comp: -2-63 + 1 ... 263 – 1 (19-20 cifras)Comp: -2-63 + 1 ... 263 – 1 (19-20 cifras)

CaracteresCaracteres:: Char: Puede contener un solo carácter.Char: Puede contener un solo carácter. Cada uno de los caracteres que se puede almacenar en un tipo char se pueden Cada uno de los caracteres que se puede almacenar en un tipo char se pueden

expresar gracias al código ASCII (256 caracteres), e internamente se almacenan expresar gracias al código ASCII (256 caracteres), e internamente se almacenan realmente bajo este código.realmente bajo este código.

Se representan entre comillas simples, de la siguiente forma:Se representan entre comillas simples, de la siguiente forma: ‘‘a’a’ El carácter blanco se escribe como un espacio entre comillas simples ‘ ‘.El carácter blanco se escribe como un espacio entre comillas simples ‘ ‘.

Page 27: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Cadenas:Cadenas:String: Secuencia de caracteres escritos en una línea.String: Secuencia de caracteres escritos en una línea.Se colocan encerrados entre dos comillas simples, de la siguiente forma:Se colocan encerrados entre dos comillas simples, de la siguiente forma:‘‘ESTO ES UN STRING’ESTO ES UN STRING’La longitud de una cadena es el numero de caracteres que hay encerrados entre La longitud de una cadena es el numero de caracteres que hay encerrados entre

comillas simples, la cadena con ningún carácter se le llama cadena vacía o cadena comillas simples, la cadena con ningún carácter se le llama cadena vacía o cadena nula se representa mediante dos comillas simples seguidas ‘’ y su longitud es cero.nula se representa mediante dos comillas simples seguidas ‘’ y su longitud es cero.

CONSTANTESCONSTANTES Una constante es un valor que no puede cambiar durante la ejecución del programa, Una constante es un valor que no puede cambiar durante la ejecución del programa,

recibe un valor en el momento de la compilación del programa y este valor no puede recibe un valor en el momento de la compilación del programa y este valor no puede ser modificado durante su ejecución. Deben ser declaradas antes de su utilización ser modificado durante su ejecución. Deben ser declaradas antes de su utilización bajo la palabra reservada CONST, pueden ser de cualquier tipo de datos, y su valor bajo la palabra reservada CONST, pueden ser de cualquier tipo de datos, y su valor debe ser asignado mediante el signo igual.debe ser asignado mediante el signo igual.

Sintaxis:Sintaxis:CONST CONST Identificador = valor o expresión;Identificador = valor o expresión;La expresión podrá ser una operación matemática entre dos valores cualesquiera, o La expresión podrá ser una operación matemática entre dos valores cualesquiera, o

entre los valores almacenados en otras constantes o variables.entre los valores almacenados en otras constantes o variables.

Ejemplos:Ejemplos:CONSTCONSTPi = 3.141592; /Valor tipo real*/Pi = 3.141592; /Valor tipo real*/DosPi = 2 * Pi; /*Dospi vale 2 * 3.24..., el valor Pi debe estar declarado con anterioridad*/DosPi = 2 * Pi; /*Dospi vale 2 * 3.24..., el valor Pi debe estar declarado con anterioridad*/

Page 28: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

VARIABLESVARIABLES

Las variables son objetos de un programa cuyo contenido puede variar durante su Las variables son objetos de un programa cuyo contenido puede variar durante su toda su ejecución. El valor que queremos almacenar en cada una de ellas se llevará toda su ejecución. El valor que queremos almacenar en cada una de ellas se llevará a cabo mediante la sentencia de asignación, sentencia que estudiaremos en el a cabo mediante la sentencia de asignación, sentencia que estudiaremos en el apartado sentencias básicas. No debemos confundir el valor que almacena una apartado sentencias básicas. No debemos confundir el valor que almacena una variable con el tipo de datos que puede almacenar. Una variable es en realidad una variable con el tipo de datos que puede almacenar. Una variable es en realidad una posición de memoria con nombre. A este identificador por el cual conocemos esta posición de memoria con nombre. A este identificador por el cual conocemos esta posición de memoria se le llama nombre de la variable, y el valor almacenado en ella posición de memoria se le llama nombre de la variable, y el valor almacenado en ella se denomina valor de la variable. Todas las variables que se utilicen en el programa se denomina valor de la variable. Todas las variables que se utilicen en el programa deben de estar declaradas previamente en la parte de declaración de variables, parte deben de estar declaradas previamente en la parte de declaración de variables, parte VAR, de l programa.VAR, de l programa.

Las declaraciones se deben realizar de la siguiente forma:Las declaraciones se deben realizar de la siguiente forma:VARVARIdentificador : tipo de datos ;Identificador : tipo de datos ;VARVARListavar1 : tipo1;Listavar1 : tipo1;Listavar2 : tipo2;Listavar2 : tipo2;...ListavarN : tipoN;.ListavarN : tipoN;Donde listavar1 hace referencia a la lista de variables del mismo tipo, siempre separadas Donde listavar1 hace referencia a la lista de variables del mismo tipo, siempre separadas

por comas. Y tipo1 al tipo de dato que comparten estas variables.por comas. Y tipo1 al tipo de dato que comparten estas variables.Ejemplos:Ejemplos:VARVAREdad : Integer;Edad : Integer;Apellidos : String;Apellidos : String;Tasas : Real;Tasas : Real;Letra1, letra2, letra3 : char;Letra1, letra2, letra3 : char;Días, meses : integer;Días, meses : integer;  

Page 29: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

SENTENCIAS BASICASSENTENCIAS BASICAS

COMENTARIOSCOMENTARIOS

Un comentario es un texto explicativo, que se coloca dentro del código del Un comentario es un texto explicativo, que se coloca dentro del código del programa. Es útil para el programador, y su uso es muy importante ya que programa. Es útil para el programador, y su uso es muy importante ya que facilita la compresión del mismo incluso para otras personas ajenas a su facilita la compresión del mismo incluso para otras personas ajenas a su desarrollo, sobre todo en posteriores consultas. desarrollo, sobre todo en posteriores consultas.

Se pueden usar en cualquier punto del programa, en una sola línea, al final Se pueden usar en cualquier punto del programa, en una sola línea, al final de una línea, después de una línea o dentro de una misma sentencia, ya de una línea, después de una línea o dentro de una misma sentencia, ya que se consideran invisibles el compilador, es decir, los ignora cuando se que se consideran invisibles el compilador, es decir, los ignora cuando se encuentra uno de ellos.encuentra uno de ellos.

Su formato es el siguiente:Su formato es el siguiente: {comentario}{comentario}

(*comentario) (*comentario) Cualquiera de los dos formatos es perfectamente valido, pudiéndose Cualquiera de los dos formatos es perfectamente valido, pudiéndose

extender a lo largo de varias líneas y se hace de la siguiente forma:extender a lo largo de varias líneas y se hace de la siguiente forma: {{

Un comentario se puede hacer lo largo que uno quiera. De acuerdo.Un comentario se puede hacer lo largo que uno quiera. De acuerdo.incluso los puedes anidar (*hola soy anidado*)}incluso los puedes anidar (*hola soy anidado*)}

Page 30: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

SENTENICA DE ASIGNACIÒNSENTENICA DE ASIGNACIÒN

La sentencia de asignación se utiliza para almacenar un dato dentro de una variable. En La sentencia de asignación se utiliza para almacenar un dato dentro de una variable. En concreto lo que realiza la sentencia de asignación es situar un valor o dato en una zona concreto lo que realiza la sentencia de asignación es situar un valor o dato en una zona de memoria.de memoria.

La variable en la que queremos guardar el valor deberá estar previamente declarada en la La variable en la que queremos guardar el valor deberá estar previamente declarada en la zona de variables del programa (parte VAR) y el valor que se almacenara en ella deberá zona de variables del programa (parte VAR) y el valor que se almacenara en ella deberá ser del mismo tipo de datos que encontramos en su declaración.ser del mismo tipo de datos que encontramos en su declaración.

Su Formato es el siguiente:Su Formato es el siguiente:

variable := expresión;variable := expresión; La expresión puede ser un valor directo, una expresión matemática, u otra variable. La expresión puede ser un valor directo, una expresión matemática, u otra variable.

Ejemplos:Ejemplos: {En el caso de que la variable fuera de tipo entero podríamos hacer lo siguiente}{En el caso de que la variable fuera de tipo entero podríamos hacer lo siguiente} variable1 := 9;variable1 := 9; variable2 := 9 + 10; {en variable2 se almacenaría 19}variable2 := 9 + 10; {en variable2 se almacenaría 19} {variable de tipo string]{variable de tipo string] variable := ‘Hola soy un string’;variable := ‘Hola soy un string’; {variable de tipo real}{variable de tipo real} variable := 12.34;variable := 12.34; {variable booleana}{variable booleana} variable := true;variable := true; La operación de asignación es una operación destructiva ya que cuando la utilizamos La operación de asignación es una operación destructiva ya que cuando la utilizamos

para almacenar algo en una variable, se borra el valor que almacenaba anteriormente, para almacenar algo en una variable, se borra el valor que almacenaba anteriormente, sustituyéndose por el nuevo valor.sustituyéndose por el nuevo valor.

variable := 9; {variable almacena 9}variable := 9; {variable almacena 9} variable := 10; {ahora el valor 9 desaparece y se almacena un 10}variable := 10; {ahora el valor 9 desaparece y se almacena un 10}

Page 31: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

EXPRESIONES Y OPERACIONES ARITMETICASEXPRESIONES Y OPERACIONES ARITMETICAS

Como hemos visto en el apartado anterior podemos almacenar en Como hemos visto en el apartado anterior podemos almacenar en una variable el resultado de una expresión aritmética. En esta una variable el resultado de una expresión aritmética. En esta sección vamos a examinar que operadores podemos utilizar e sección vamos a examinar que operadores podemos utilizar e dichas expresiones.dichas expresiones.

Page 32: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

EJEMPLO:EJEMPLO:

PROGRAM Ejemplo(INPUT, OUTPUT); PROGRAM Ejemplo(INPUT, OUTPUT); FUNCTION PreguntaNombre:STRING; FUNCTION PreguntaNombre:STRING; VAR nombre:STRING; VAR nombre:STRING; BEGIN REPEAT WRITELN('Ingresa tu nombre:'); BEGIN REPEAT WRITELN('Ingresa tu nombre:'); READLN(nombre); UNTIL nombre <> ''; READLN(nombre); UNTIL nombre <> ''; PreguntaNombre := nombre; PreguntaNombre := nombre; END; END;

PROCEDURE Saluda; PROCEDURE Saluda; VAR nombre:STRING; VAR nombre:STRING; BEGIN nombre := PreguntaNombre; BEGIN nombre := PreguntaNombre; IF nombre = 'wirth' THEN WRITELN('Hola señor Wirth!');IF nombre = 'wirth' THEN WRITELN('Hola señor Wirth!'); ELSE WRITELN('Hola '+nombre); ELSE WRITELN('Hola '+nombre); END;END;BEGIN Saluda; BEGIN Saluda; END. END.

Page 33: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

HISTORIA C++HISTORIA C++ El lenguaje C++ fue creado hacia el año 1980 por Bjarne Stroustrup El lenguaje C++ fue creado hacia el año 1980 por Bjarne Stroustrup

en los laboratorios Bell. En un principio se utilizó para hacer en los laboratorios Bell. En un principio se utilizó para hacer algunas simulaciones, que para aquel momento ningún otro algunas simulaciones, que para aquel momento ningún otro lenguaje podría  soportarlas. lenguaje podría  soportarlas.

C++ es el producto de la unión de los más grandes aportes hechos C++ es el producto de la unión de los más grandes aportes hechos por el lenguaje C, tiene características en común con otros por el lenguaje C, tiene características en común con otros lenguajes como el BCPL, ALGOL 68, SIMULA 67, en especial lenguajes como el BCPL, ALGOL 68, SIMULA 67, en especial podríamos decir que es un superconjunto del lenguaje C, ya que la podríamos decir que es un superconjunto del lenguaje C, ya que la similitud sintáctica que tiene C++ con este lenguaje se debe a que similitud sintáctica que tiene C++ con este lenguaje se debe a que uno de los objetivos del creador era mantener y conservar uno de los objetivos del creador era mantener y conservar programas que anteriormente fueron escritos en C, por ello se programas que anteriormente fueron escritos en C, por ello se comenzó incluyendo varias de sus bibliotecas . Una de las mejoras comenzó incluyendo varias de sus bibliotecas . Una de las mejoras mas importantes de C++ es el desarrollo de la Programación mas importantes de C++ es el desarrollo de la Programación Orientada a Objetos, esto de debe a que incluye conceptos como la Orientada a Objetos, esto de debe a que incluye conceptos como la abstracción, herencia, encapsulamiento y polimorfismo. El concepto abstracción, herencia, encapsulamiento y polimorfismo. El concepto fundamental de C++ es la clase lo que viene a ser un tipo definido fundamental de C++ es la clase lo que viene a ser un tipo definido por el usuario, el cual permite un manejo mas personalizado de los por el usuario, el cual permite un manejo mas personalizado de los datos. datos.

Page 34: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

PRIMER PROGRAMAPRIMER PROGRAMA Cualquier programa por mas simple que sea contiene las siguientes Cualquier programa por mas simple que sea contiene las siguientes

características:  características:  ·         Obtención de información desde cualquier periférico de ·         Obtención de información desde cualquier periférico de

entrada. entrada. ·         Forma como se almacena esa información (estática o ·         Forma como se almacena esa información (estática o

dinámicamente). dinámicamente). ·         Conjunto de instrucciones que manipularan esa información ·         Conjunto de instrucciones que manipularan esa información

mediante determinado proceso. mediante determinado proceso. ·         Mostrar los resultados obtenidos. ·         Mostrar los resultados obtenidos. La siguiente es la estructura básica de un programa en C++:La siguiente es la estructura básica de un programa en C++: Directivas del procesador.(bibliotecas de funciones). Directivas del procesador.(bibliotecas de funciones). Declaración de variables globales y funciones.(almacenamiento de Declaración de variables globales y funciones.(almacenamiento de

los datos mediante un identificador). los datos mediante un identificador). Función principal main.(función principal). Función principal main.(función principal). main( ) main( ) {    declaraciones locales. {    declaraciones locales.         instrucciones de una función. instrucciones de una función. }}

Page 35: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Otras funciones.Otras funciones. Lo cual puede verse ilustrado con nuestro primer Lo cual puede verse ilustrado con nuestro primer

programa:programa://mi primer programa//mi primer programa

#include<iostream.h>#include<iostream.h>main( )main( ){{cout<<"este es mi primer programa";cout<<"este es mi primer programa";return (0);return (0);}}

Este programa imprime en pantalla:Este programa imprime en pantalla: Este es mi primer programa.Este es mi primer programa.

Page 36: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

PALABRAS RESERVADAS E PALABRAS RESERVADAS E IDENTIFICADORESIDENTIFICADORES

Cuando estamos programando en C++ podremos necesitar unas Cuando estamos programando en C++ podremos necesitar unas variables para almacenar un dato, C++ nos provee de varios tipos variables para almacenar un dato, C++ nos provee de varios tipos de datos para tal tarea, por ejemplo si necesitamos leer un número de datos para tal tarea, por ejemplo si necesitamos leer un número desde el teclado vamos a necesitar una variable desde el teclado vamos a necesitar una variable

Palabras Reservadas:Palabras Reservadas: c++ utiliza palabras claves como cout, c++ utiliza palabras claves como cout, #include, main#include, main, etc, los cuales son identificadores que tienen un , etc, los cuales son identificadores que tienen un significado especial para el compilador. Solo podremos utilizarlas tal significado especial para el compilador. Solo podremos utilizarlas tal y como se han definido, además no podremos utilizar estos y como se han definido, además no podremos utilizar estos identificadores como nombre para las variables que definamos. identificadores como nombre para las variables que definamos.

identificadores: identificadores: Estos son los nombres que utilizamos para Estos son los nombres que utilizamos para representar las variables, constantes, tipos, funciones y etiquetas representar las variables, constantes, tipos, funciones y etiquetas de nuestro programa. de nuestro programa.

Estos identificadores en C++ deben cumplir lo siguiente: Estos identificadores en C++ deben cumplir lo siguiente: ·         El primer carácter debe ser una letra o un subrayado. ·         El primer carácter debe ser una letra o un subrayado. ·         Los caracteres significativos son los 32 primeros del ·         Los caracteres significativos son los 32 primeros del

identificador. identificador. Los identificadores son sensibles al tamaño y tipo de la letra, al Los identificadores son sensibles al tamaño y tipo de la letra, al

igual que a las mayúsculas y minúsculas.igual que a las mayúsculas y minúsculas.

Page 37: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

ENTRADA Y SALIDAENTRADA Y SALIDA

C++ tiene sus propios archivos de cabecera por ejemplo C++ tiene sus propios archivos de cabecera por ejemplo iostream.hiostream.h, , fstream.hfstream.h las cuales conforman su colección las cuales conforman su colección de funciones de E/S. El flujo de entrada y salida se de funciones de E/S. El flujo de entrada y salida se define como un conjunto de clases, las cuales están define como un conjunto de clases, las cuales están contenidas en el archivo de cabecera contenidas en el archivo de cabecera iostream.hiostream.h y se y se sobrecargan con los operadores << y >>. sobrecargan con los operadores << y >>.

SALIDA  CON FORMATO.SALIDA  CON FORMATO. La entrada y salida se puede realizar aplicándole un La entrada y salida se puede realizar aplicándole un

formato el cual se asocia con el stream de salida, un formato el cual se asocia con el stream de salida, un conjunto de manipuladores, estos permiten manipular la conjunto de manipuladores, estos permiten manipular la forma como son visualizados los resultados al usuario forma como son visualizados los resultados al usuario estos son algunos de los manipuladores los cuales se estos son algunos de los manipuladores los cuales se encuentran en el archivo de cabecera encuentran en el archivo de cabecera iomanip.hiomanip.h: :

Page 38: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

endlendl inserta el caracter de fin de línea '\n'  inserta el caracter de fin de línea '\n'  endsends inserta el caracter de fin de cadena '\0' inserta el caracter de fin de cadena '\0' decdec conversión a decimal conversión a decimal hexhex conversión a hexadecimal conversión a hexadecimal octoct conversión a octal conversión a octal wsws Extrae un espacio en blanco del inicio de un stream Extrae un espacio en blanco del inicio de un stream flushflush vacía el buffer respecto de un stream de salida vacía el buffer respecto de un stream de salida Setprecision (int n)Setprecision (int n) precisión de un dato coma flotante (cifras precisión de un dato coma flotante (cifras

significativas) significativas) setfill (int car)setfill (int car) determina el caracter de relleno para las cadenas de determina el caracter de relleno para las cadenas de

caracteres caracteres setw (int n)setw (int n) establece anchura de campo establece anchura de campo setiosflags (long fs)setiosflags (long fs) establece una lista de indicadores de formato, fija establece una lista de indicadores de formato, fija

bites de formato bites de formato resetiosflags (long fs)resetiosflags (long fs) suprime una lista de indicadores de formato e suprime una lista de indicadores de formato e

inicializa formato de bits  inicializa formato de bits 

Page 39: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

TIPOS DE DATOS BASICOSTIPOS DE DATOS BASICOS NOMBRENOMBRE RANGO RANGO TAMAÑO(bytes) TAMAÑO(bytes) int int -32768..32767 -32768..32767 2 2 short short -32768..32767 -32768..32767 2 2 long long -2,147.483.648..2,147.438.647-2,147.483.648..2,147.438.647 4 4 unsigned unsigned 0..65535 0..65535 2 2 unsigned short unsigned short 0..65535 0..65535 2 2 unsigned long unsigned long 0..4,294.967.295 0..4,294.967.295 4 4 float float 3.4E-38..3.4E+38 3.4E-38..3.4E+38 4 4 double double 1.7E-308..1.7E+308 1.7E-308..1.7E+308 8 8 long double long double 3.4E-4932..3.4E+4932 3.4E-4932..3.4E+4932 10 10 char char -128..127 -128..127 1 1 unsigned char unsigned char 0..255 0..255 1 1

Page 40: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

ESTRUCTURAS ESTRUCTURAS CONDICIONALESCONDICIONALES

estas instrucciones nos van a servir para ejecutar una o estas instrucciones nos van a servir para ejecutar una o varias líneas de código de manera especifica,  a varias líneas de código de manera especifica,  a continuación una descripción de cada una de ellas.  continuación una descripción de cada una de ellas. 

Estructura Estructura if: if:  se utiliza para ejecutar una línea de código se utiliza para ejecutar una línea de código

condicionalmente. A continuación la forma mas sencilla: condicionalmente. A continuación la forma mas sencilla:                                                   if(expresion) {if(expresion) {                                     accion 1;accion 1;                                     accion 2;accion 2;                                           ..                                           ..                                     accion n; }accion n; }

Page 41: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

ESTRUCTURA IF-ELSEESTRUCTURA IF-ELSE Otra versión de la estructura if mas general es la estructura Otra versión de la estructura if mas general es la estructura if-else:if-else:                                                   if(expresion) { if(expresion) {                                     accion 1;accion 1;                                     accion 2;accion 2;                                           ..                                           ..                                     accion n; }elseaccion n; }else                                                                   {{                                                                     accion 1;accion 1;                                                                     accion 2;accion 2;                                                                           ..                                                                           ..                                                                     accion n; }accion n; } Este tipo de Estructura permite evaluar la expresión de manera Este tipo de Estructura permite evaluar la expresión de manera

específica y tomar dos acciones distintas y ejecutar su respectivo específica y tomar dos acciones distintas y ejecutar su respectivo bloque de acciones. bloque de acciones.

Page 42: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Estructura condicional  "?".Estructura condicional  "?". permite evaluar una expresión particular y hacer una única selección de dos permite evaluar una expresión particular y hacer una única selección de dos

posibles acciones dependiendo de la validez o falsedad de la expresión así: posibles acciones dependiendo de la validez o falsedad de la expresión así:           expresion ? accion_1: accion_2;expresion ? accion_1: accion_2; Estructura switch.Estructura switch. Cuando realizamos un programa encontraremos que necesitamos Cuando realizamos un programa encontraremos que necesitamos

comprobar posibles valores de una variable, es para esto que nos sirve lacomprobar posibles valores de una variable, es para esto que nos sirve la estructura estructura switchswitch, ahora su sintaxis: , ahora su sintaxis: switch (expresion) { switch (expresion) { case valor_1:  instruccion_1; case valor_1:  instruccion_1;                                           break; break; case valor_2: instruccion_2; case valor_2: instruccion_2;                                         break;break;                                               . .                                               . .                                               . . case valor_n: instruccion_n; case valor_n: instruccion_n;                                           break; break; default: otra_instruccion;     }default: otra_instruccion;     }

Page 43: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

ESTRUCTURA FORESTRUCTURA FOR Estructura for.Estructura for. En varias ocasiones necesitamos ejecutar una o varias En varias ocasiones necesitamos ejecutar una o varias

instrucciones un determinado numero de veces realizando o instrucciones un determinado numero de veces realizando o teniendo en cuenta una verificación, para ello utilizamos la teniendo en cuenta una verificación, para ello utilizamos la estructura estructura for for la cual tiene la siguiente sintaxis: la cual tiene la siguiente sintaxis:

  int ciclo, numero_veces; int ciclo, numero_veces; for ( ciclo = 0; ciclo < numero_veces; ciclo = ciclo + 1) for ( ciclo = 0; ciclo < numero_veces; ciclo = ciclo + 1)               { {                     instruccion_1; instruccion_1;                     instruccion_2; instruccion_2;                                       . .                                       . .                   instruccion_n; instruccion_n;             }}

Page 44: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

ESTRUCTURA WHILEESTRUCTURA WHILE

El uso de El uso de whilewhile es similar al de es similar al de forfor ya que antes de ya que antes de realizar el bloque de instrucciones se hace una realizar el bloque de instrucciones se hace una verificacion preliminar, la sintaxis es la siguiente: verificacion preliminar, la sintaxis es la siguiente:

while( condicion ) while( condicion )           {  {                instruccion_1; instruccion_1;               instruccion_2; instruccion_2;                             . .                             . .               instruccion_n; instruccion_n;           }   }   

Page 45: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

ESTRUCTURA DO-WHILEESTRUCTURA DO-WHILE La estructura La estructura do-whiledo-while se diferencia de las anteriores, se diferencia de las anteriores,

en que la verificación de una determinada condición se en que la verificación de una determinada condición se realiza al final del ciclo, es decir al entrar a la estructura realiza al final del ciclo, es decir al entrar a la estructura do-while el ciclo se realiza por lo menos una vez, la do-while el ciclo se realiza por lo menos una vez, la sintaxis es la siguiente: sintaxis es la siguiente:

do { do {                     instruccion_1; instruccion_1;                     instruccion_2; instruccion_2;                                       . .                                       . .                   instruccion_n; instruccion_n;         }while(condicion);  }while(condicion);       

Page 46: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

EJEMPLOSEJEMPLOS Programa que ordena n números de forma descendente y Programa que ordena n números de forma descendente y

ascendente utilizando el conocido método de burbujaascendente utilizando el conocido método de burbujavalor. valor. #include#include #include#include #include#include #define tamanyo 5#define tamanyo 5 void Burbuja_Ascendente(int *vector)void Burbuja_Ascendente(int *vector) {{ int temporal;int temporal; for(int pase=0;pasevector[i+1])for(int pase=0;pasevector[i+1]) {{ temporal = vector[i];temporal = vector[i]; vector[i] = vector[i+1];vector[i] = vector[i+1]; vector[i+1] = temporal;vector[i+1] = temporal; }}

Page 47: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

//fin if//fin if } } //fin for interno }//fin for interno } //fin for externo}//fin for externo} //fin de funcion void Burbuja_Descendente(int *vector)//fin de funcion void Burbuja_Descendente(int *vector) { { int temporal; int temporal; for(int pase=0;for(int pase=0; pase<<"ORDENAMIENTO pase<<"ORDENAMIENTO

BURBUJA"<<endl<<<"digite"<<<"entero["<<i<<"]= "; BURBUJA"<<endl<<<"digite"<<<"entero["<<i<<"]= "; cin>>enteros[i]; cin>>enteros[i];

auxiliar[i] = enteros[i]; auxiliar[i] = enteros[i]; }} cout<<"ARREGLO cout<<"ARREGLO

ORIGINAL"<<<enteros[i]<<<endl<<"ARREGLO ORIGINAL"<<<enteros[i]<<<endl<<"ARREGLO ASCENDENTE"<<<enteros[i]<<<endl<<"ARREGLO ASCENDENTE"<<<enteros[i]<<<endl<<"ARREGLO DESCENDENTE"<<<auxiliar[i]<DESCENDENTE"<<<auxiliar[i]<

Page 48: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Este programa calcula el factorial de n, mediante una función Este programa calcula el factorial de n, mediante una función recursivarecursiva

#include#include #include#include #include #include long unsigned factorial(long unsigned numero)long unsigned factorial(long unsigned numero) { { if(numero<=1) if(numero<=1) return 1; return 1; else return numero*factorial(numero-1);else return numero*factorial(numero-1); }} int main()int main() { { int n; int n; clrscr();clrscr(); cout<<"numero n? "; cout<<"numero n? "; cin>>n; cin>>n; for(int i=0;i<=n;i++) for(int i=0;i<=n;i++) cout<<endl<<i<<"!"<<setw(20)<<setiosflags(ios::right)<cout<<endl<<i<<"!"<<setw(20)<<setiosflags(ios::right)<

Page 49: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

- Historia del lenguaje de - Historia del lenguaje de Programación JavaProgramación Java

- Objetivos de su diseño- Objetivos de su diseño

- Lo nuevo de Java- Lo nuevo de Java

- Gramática de Java- Gramática de Java

- Un ejemplo de programa en - Un ejemplo de programa en JavaJava

Page 50: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Historia de JavaHistoria de Java

1991 Sun Microsystems1991 Sun Microsystems James GoslingJames Gosling Uso en software dirigido a la Uso en software dirigido a la

programaciòn de electrodomésticosprogramaciòn de electrodomésticos Vídeos, Tv, teléfonos, Ordenadores…Vídeos, Tv, teléfonos, Ordenadores… Sus primeras versiones OAKSus primeras versiones OAK

Page 51: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

ObjetivosObjetivos Lenguaje familiar:Lenguaje familiar:

- Java no sería un lenguaje totalmente nuevo, se parecería a lo que - Java no sería un lenguaje totalmente nuevo, se parecería a lo que conocemos como C++. conocemos como C++.

Lenguaje orientado a objetosLenguaje orientado a objetosEs decir contar con las características de: Es decir contar con las características de: - encapsulación - encapsulación - herencia - herencia - polimorfismo - polimorfismo - enlace dinámico- enlace dinámico

Lenguaje robusto Lenguaje robusto --En Java, los punteros, la aritmética de punteros y las funciones de En Java, los punteros, la aritmética de punteros y las funciones de

asignación y liberación de memoria (malloc( ) y free( ) ) no existen. asignación y liberación de memoria (malloc( ) y free( ) ) no existen. - En lugar de los punteros se emplean referencias a objetos, los cuales son - En lugar de los punteros se emplean referencias a objetos, los cuales son identificadores simbólicos. identificadores simbólicos. - El gestor de memoria de Java lleva una contabilidad de las referencias a - El gestor de memoria de Java lleva una contabilidad de las referencias a los objetos. Cuando ya no existe una referencia a un objeto, éste se los objetos. Cuando ya no existe una referencia a un objeto, éste se convierte en candidato para la recogida de basura (garbage collection). convierte en candidato para la recogida de basura (garbage collection).

Page 52: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Lenguaje de alto rendimiento ( múltiples threads )Lenguaje de alto rendimiento ( múltiples threads )

- Una de las características del lenguaje es que soporta la concurrencia a - Una de las características del lenguaje es que soporta la concurrencia a través de threads. través de threads.

- En ocasiones puede interesarnos dividir una aplicación en varios flujos de - En ocasiones puede interesarnos dividir una aplicación en varios flujos de control independientes, cada uno de los cuales lleva a cabo sus funciones control independientes, cada uno de los cuales lleva a cabo sus funciones de manera concurrente. de manera concurrente.

Lenguaje portableLenguaje portable- El principal objetivo de los diseñadores de Java, y dado el gran - El principal objetivo de los diseñadores de Java, y dado el gran crecimiento de las redes en los últimos años, fue el de desarrollar un crecimiento de las redes en los últimos años, fue el de desarrollar un lenguaje cuyas aplicaciones una vez compiladas pudiesen ser lenguaje cuyas aplicaciones una vez compiladas pudiesen ser inmediatamente ejecutables en cualquier máquina y sobre cualquierinmediatamente ejecutables en cualquier máquina y sobre cualquier

sistema operativo. sistema operativo.

ObjetivosObjetivos

Page 53: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

ObjetivosObjetivos Lenguaje lo más simple posibleLenguaje lo más simple posible

- Los diseñadores de Java trataron de mantener las facilidades básicas del - Los diseñadores de Java trataron de mantener las facilidades básicas del lenguaje en un mínimo y proporcionar un gran número de extras con las lenguaje en un mínimo y proporcionar un gran número de extras con las librerías de clases.librerías de clases. Entrada/SalidaEntrada/Salida RedesRedes GráficosGráficos Creación del interfaz gráficoCreación del interfaz gráfico Seguridad…Seguridad…

Lenguaje seguroLenguaje seguro

- Se pretendía construir un lenguaje de programación que fuese seguro, - Se pretendía construir un lenguaje de programación que fuese seguro, esto es, que no pudiera acceder a los recursos del sistema de manera esto es, que no pudiera acceder a los recursos del sistema de manera incontrolada. Por este motivo se eliminó la posibilidad de manipular la incontrolada. Por este motivo se eliminó la posibilidad de manipular la memoria mediante el uso de punteros y la capacidad de transformación de memoria mediante el uso de punteros y la capacidad de transformación de números en direcciones de memoria ( tal y como se hace en C ) evitando números en direcciones de memoria ( tal y como se hace en C ) evitando así todo acceso ilegal a la memoria. Esto se asegura porque el compilador así todo acceso ilegal a la memoria. Esto se asegura porque el compilador Java efectúa una verificación sistemática de conversiones. Java efectúa una verificación sistemática de conversiones.

Page 54: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Lo nuevo Lo nuevo La gran novedadLa gran novedad que aporta Java dentro de las nuevas generaciones de navegadores que aporta Java dentro de las nuevas generaciones de navegadores

es la capacidad de desplazar el control de la interactividad de los servidores hacia las es la capacidad de desplazar el control de la interactividad de los servidores hacia las máquinas de los usuarios que se utilizan para recorrer Internet. máquinas de los usuarios que se utilizan para recorrer Internet.

El lenguaje Java,El lenguaje Java, visto desde un navegador de Internet, es pues un lenguaje que no es visto desde un navegador de Internet, es pues un lenguaje que no es ni totalmente interpretado, ni totalmente compilado. El lenguaje se transforma en un ni totalmente interpretado, ni totalmente compilado. El lenguaje se transforma en un código elemental parecido al ensamblador, llamado también p-code o byte-code.código elemental parecido al ensamblador, llamado también p-code o byte-code.

Posee la particularidadPosee la particularidad de ser compacto y por tanto puede ser compilado (traducido a de ser compacto y por tanto puede ser compilado (traducido a lenguaje máquina) muy rápidamente, en el transcurso de la propia ejecución del lenguaje máquina) muy rápidamente, en el transcurso de la propia ejecución del programa. El p-code constituye una capa intermedia que facilita enormemente la programa. El p-code constituye una capa intermedia que facilita enormemente la portabilidad de un entorno o de una máquina a otra. portabilidad de un entorno o de una máquina a otra.

Page 55: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Lo nuevoLo nuevo Aparece entonces la Aparece entonces la "máquina virtual"."máquina virtual". Una máquina virtual es una capa Una máquina virtual es una capa

lógica que hace creer al programa Java que se ejecuta en un ordenador lógica que hace creer al programa Java que se ejecuta en un ordenador real (con registros, memoria y procesador), cuando en realidad sólo ve una real (con registros, memoria y procesador), cuando en realidad sólo ve una reconstrucción lógica de un ordenador. reconstrucción lógica de un ordenador.

Para ejecutar un programaPara ejecutar un programa Java compilado (que está en p-code), es Java compilado (que está en p-code), es preciso también que cuente con una implementación de la máquina virtual preciso también que cuente con una implementación de la máquina virtual específica donde se desea ejecutar, la cual efectúa la transformación del p-específica donde se desea ejecutar, la cual efectúa la transformación del p-code en un programa comprensible para la máquina.code en un programa comprensible para la máquina.

Page 56: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

GramáticaGramática Comentarios Comentarios

// comentarios para una sola línea // comentarios para una sola línea /* comentarios de una o /* comentarios de una o

más líneas más líneas */ */

Identificadores Identificadores Identificador nombre_usuario ò Nombre_Usuario ò _variable_de_sistema Identificador nombre_usuario ò Nombre_Usuario ò _variable_de_sistema

ò $transaccionò $transaccion

Palabras clavePalabras clave abstract, continue, for, new, switch, boolean, default, goto, null, abstract, continue, for, new, switch, boolean, default, goto, null,

synchronizedbreak, do, if, package, thisbyte, double, implements, private, synchronizedbreak, do, if, package, thisbyte, double, implements, private, threadsafebyvalue, else, import, protected, throwcase, extends, instanceof, public, threadsafebyvalue, else, import, protected, throwcase, extends, instanceof, public, transient, catch, false, int, return, true, char, final, interface, short, try, class, finally, transient, catch, false, int, return, true, char, final, interface, short, try, class, finally, long, static, void, const, float, native, super, while.long, static, void, const, float, native, super, while.

Palabras reservadasPalabras reservadas cast, future, generic, inneroperator, outer, rest, var,cast, future, generic, inneroperator, outer, rest, var,

Page 57: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Un ejemplo Un ejemplo

public class hello public class hello

{{

public static void main (String[] args ) public static void main (String[] args )

{{

System.out.println ("Hola Mundo");System.out.println ("Hola Mundo");

}}

}}

Page 58: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

CONCLUSIONES.CONCLUSIONES.

Lenguajes de alto nivel o de tercera generación: Lenguajes de alto nivel o de tercera generación: Se diseñan una serie de primitivas de alto nivel equivalentes a una Se diseñan una serie de primitivas de alto nivel equivalentes a una

secuencia de primitivas de bajo nivel. Dado que los traductores de secuencia de primitivas de bajo nivel. Dado que los traductores de estos lenguajes debían reunir o "compilar" varias instrucciones de estos lenguajes debían reunir o "compilar" varias instrucciones de código máquina para simular una primitiva de alto nivel, se código máquina para simular una primitiva de alto nivel, se denominó compiladores a los programas traductores. Se consigue denominó compiladores a los programas traductores. Se consigue independencia con respecto al ordenador, sólo se debe disponer independencia con respecto al ordenador, sólo se debe disponer del compilador adecuado para cada máquina. del compilador adecuado para cada máquina.

Las instituciones que se encargan de la definición de lenguajes son la Las instituciones que se encargan de la definición de lenguajes son la ISO (International Standards Organization) y ANSI (American ISO (International Standards Organization) y ANSI (American National Standards Institute).National Standards Institute).

Page 59: Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

CONCLUSIONESCONCLUSIONES

Lenguajes de cuarta generación: Lenguajes de cuarta generación: Son aplicaciones que se suelen agrupar en paquetes formando Son aplicaciones que se suelen agrupar en paquetes formando

sistemas que permiten a un usuario adaptar los programas a sus sistemas que permiten a un usuario adaptar los programas a sus aplicaciones sin tener conocimientos técnicos. Se incluyen aquí las aplicaciones sin tener conocimientos técnicos. Se incluyen aquí las hojas de cálculo, los sistemas de bases de datos, etc. hojas de cálculo, los sistemas de bases de datos, etc.

El entorno de programación que ofrecen es mucho más cercano al de El entorno de programación que ofrecen es mucho más cercano al de la aplicación que los entornos ofrecidos por los lenguajes de tercera la aplicación que los entornos ofrecidos por los lenguajes de tercera generación. generación.