ALUMNOS: WILLIAN VERA - DERLIS DIAZ - FERNANDO BLANCO - MARCELO IBARRA - JOEL GAUTO
Universidad Privada del Este Facultad de Ciencias de la Informtica Lenguaje de programacin Un lenguaje de programacin es un lenguaje formal diseado para expresar procesos que pueden ser llevados a cabo por mquinas como las computadoras. Historia Lenguajes utilizados para AI Cdigo mquina. Lenguajes ensamblador. Lenguajes de alto nivel Lenguajes con un propsito concreto Elementos Variables Las variables podran calificarse como contenedores de datos y por ello se diferencian segn el tipo de dato que son capaces de almacenar. Vectores Un vector no es ms que un conjunto de variables consecutivas en memoria y del mismo tipo guardadas dentro de una variable contenedor. Caractersticas Caractersticas Condicionantes Los condicionantes son estructuras de cdigo que indican que, para que cierta parte del programa se ejecute, deben cumplirse ciertas premisas
Los condicionantes ms conocidos y empleados en programacin son: If: Indica una condicin para que se ejecute una parte del programa. Else if: Siempre va precedido de un "If" e indica una condicin para que se ejecute una parte del programa siempre que no cumpla la condicin del if previo y si se cumpla con la que el "else if" especifique. Else: Siempre precedido de "If" y en ocasiones de "Else If". Indica que debe ejecutarse cuando no se cumplan las condiciones prvias.
Caractersticas Bucles Los bucles son parientes cercanos de los condicionantes, pero ejecutan constantemente un cdigo mientras se cumpla una determinada condicin. Los ms frecuentes son: For: Ejecuta un cdigo mientras una variable se encuentre entre 2 determinados parmetros. While: Ejecuta un cdigo mientras se cumpla la condicin que solicita. Caractersticas Funciones Las funciones se crearon para evitar tener que repetir constantemente fragmentos de cdigo. Una funcin podra considerarse como una variable que encierra cdigo dentro de s. Caractersticas Sintaxis A la forma visible de un lenguaje de programacin se le conoce como sintaxis. La sintaxis de un lenguaje de programacin describe las combinaciones posibles de los smbolos que forman un programa sintcticamente correcto. No todos los programas sintcticamente correctos son semnticamente correctos. 1. "Las ideas verdes y descoloridas duermen furiosamente 2. "Juan es un soltero casado Caractersticas Sintaxis A la forma visible de un lenguaje de programacin se le conoce como sintaxis. La sintaxis de un lenguaje de programacin describe las combinaciones posibles de los smbolos que forman un programa sintcticamente correcto. No todos los programas sintcticamente correctos son semnticamente correctos. Ejemplos 1. "Las ideas verdes y descoloridas duermen furiosamente 2. "Juan es un soltero casado Caractersticas Semntica esttica La semntica esttica define las restricciones sobre la estructura de los textos vlidos que resulta imposible o muy difcil expresar mediante formalismos sintcticos estndar. Para los lenguajes compilados, la semntica esttica bsicamente incluye las reglas semnticas que se pueden verificar en el momento de compilar. Caractersticas Sistemas de tipos Un sistema de tipos define la manera en la cual un lenguaje de programacin clasifica los valores y expresiones en tipos, cmo pueden ser manipulados dichos tipos y cmo interactan. Objetivo: verificar y normalmente poner en vigor un cierto nivel de exactitud en programas escritos en el lenguaje en cuestin, detectando ciertas operaciones invlidas. Caractersticas Lenguajes tipados versus lenguajes no tipados De tipos Se dice que un lenguaje tiene tipos si la especificacin de cada operacin define tipos de datos para los cuales la operacin es aplicable, con la implicacin de que no es aplicable a otros tipos. Por ejemplo, "este texto entre comillas" es una cadena. En la mayora de los lenguajes de programacin, dividir un nmero por una cadena no tiene ningn significado. Caractersticas Lenguajes tipados versus lenguajes no tipados Sin tipos Un lenguaje sin tipos, permite que cualquier operacin se aplique a cualquier dato, que por lo general se consideran secuencias de bits de varias longitudes. Caractersticas Tipos estticos versus tipos dinmicos Tipos estticos Se determina el tipo de todas las expresiones antes de la ejecucin del programa (tpicamente al compilar). Por ejemplo, 1 y (2+2) son expresiones enteras, no pueden guardarse en una variable que est definida como fecha. Caractersticas Tipos estticos versus tipos dinmicos Tipos dinmicos Determinan la validez de los tipos involucrados en las operaciones durante la ejecucin del programa. Los tipos estn asociados con valores en ejecucin en lugar de expresiones textuales. Permite que una misma variable se pueda asociar con valores de tipos distintos en diferentes momentos de la ejecucin de un programa. Caractersticas Implementacin La implementacin de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinacin de software y hardware. Existen bsicamente dos maneras de implementar un lenguaje: compilacin e interpretacin. Caractersticas Implementacin Compilacin: es el proceso que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz interpretar.
Interpretacin: es una asignacin de significados a las frmulas bien formadas de un lenguaje formal Caractersticas Implementacin Compilacin: es el proceso que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz interpretar.
Interpretacin: es una asignacin de significados a las frmulas bien formadas de un lenguaje formal Caractersticas Tcnica Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una serie de detalles. Correccin. Un programa es correcto si hace lo que debe hacer tal y como se estableci en las fases previas a su desarrollo. Claridad. Que el programa sea lo ms claro y legible posible, para facilitar as su desarrollo y posterior mantenimiento. Eficiencia. Que el programa sea correcto y que lo haga gestionando de la mejor forma posible los recursos que utiliza. Portabilidad. Cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en la que se elabor. Caractersticas Tcnica Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una serie de detalles. Correccin. Un programa es correcto si hace lo que debe hacer tal y como se estableci en las fases previas a su desarrollo. Claridad. Que el programa sea lo ms claro y legible posible, para facilitar as su desarrollo y posterior mantenimiento. Eficiencia. Que el programa sea correcto y que lo haga gestionando de la mejor forma posible los recursos que utiliza. Portabilidad. Cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en la que se elabor. Cdigo Fuente Licenciamiento El cdigo fuente de un programa informtico (o software) es un conjunto de lneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa. Por tanto, en el cdigo fuente de un programa est escrito por completo su funcionamiento. Cdigo Objeto En programacin, se llama cdigo objeto al cdigo que resulta de la compilacin del cdigo fuente.
Consiste en lenguaje mquina o bytecode y se distribuye en varios archivos que corresponden a cada cdigo fuente compilado. Para obtener un programa ejecutable se han de enlazar todos los archivos de cdigo objeto con un programa llamado enlazador (linker). Cdigo ejecutable Cdigo ejecutable corresponde a las unidades de programas, donde el ordenador puede realizar las instrucciones compiladas mediante el compilador y el enlazador de libreras.
Generalmente vienen con la extensin EXE o COM, si los han de ejecutar computadoras con Sistema Operativo de Windows o con bits de marca que trae Linux para ser ejecutable. Clasificacin Nivel de abstraccin 1. Lenguajes de bajo nivel: La programacin se realiza teniendo muy en cuenta las caractersticas del procesador. 2. Lenguajes de nivel medio: Permiten un mayor grado de abstraccin pero al mismo tiempo mantienen algunas cualidades de los lenguajes de bajo nivel. Ejemplo: C 3. Lenguajes de alto nivel: Ms parecidos al lenguaje humano. Manejan conceptos, tipos de datos, etc., de una manera cercana al pensamiento humano ignorando (abstrayndose) del funcionamiento de la mquina. Clasificacin Propsito 1. Propsito general: Aptos para todo tipo de tareas. 2. Propsito especfico: Hechos para un objetivo muy concreto. 3. Lenguajes de programacin de sistemas: Diseados para realizar sistemas operativos o drivers. 4. Lenguajes de script: Para realizar tareas varias de control y auxiliares. Antiguamente eran los llamados lenguajes de procesamiento por lotes (batch) o JCL (Job Control Languages). Se subdividen en varias clases (de shell, de GUI, de programacin web, etc.). Clasificacin Evolucin histrica 1. Primera generacin (1GL): Cdigo mquina. 2. Segunda generacin (2GL): Lenguajes ensamblador. 3. Tercera generacin (3GL): La mayora de los lenguajes modernos, diseados para facilitar la programacin a los humanos. 4. Cuarta generacin (4GL): Diseados con un propsito concreto, o sea, para abordar un tipo concreto de problemas. 5. Quinta generacin (5GL): La intencin es que el programador establezca el qu problema ha de ser resuelto y las condiciones a reunir, y la mquina lo resuelve. Clasificacin Manera de ejecutarse 1. Lenguajes compilados: Un programa traductor traduce el cdigo cdigo fuente en cdigo cdigo objeto. Otro programa, el enlazador, unir los ficheros de cdigo objeto del programa principal con los de las libreras para producir el programa ejecutable.
2. Lenguajes interpretados: Un programa (intrprete), ejecuta las instrucciones del programa de manera directa. Clasificacin Manera de abordar la tarea a realizar 1. Lenguajes imperativos: Indican cmo hay que hacer la tarea, es decir, expresan los pasos a realizar. Ejemplo: C.
2. Lenguajes declarativos: Indican qu hay que hacer. Ejemplos: Lisp, Prolog. Clasificacin Paradigma de programacin 1. Lenguajes de programacin procedural: Divide el problema en partes ms pequeas, que sern para ser ejecutadas. 2. Lenguajes de programacin orientada a objetos: Crean un sistema de clases y objetos siguiendo el ejemplo del mundo real, en el que unos objetos realizan acciones y se comunican con otros objetos 3. Lenguajes de programacin funcional: La tarea se realiza evaluando funciones, (como en Matemticas), de manera recursiva. 4. Lenguajes de programacin lgica: La tarea a realizar se expresa empleando lgica formal matemtica. Expresa qu computar. Clasificacin Lugar de ejecucin 1. Lenguajes de servidor: Se ejecutan en el servidor.
2. Lenguajes de cliente: Se ejecutan en el cliente. Clasificacin Concurrencia Segn admitan o no concurrencia de procesos, esto es, la ejecucin simultnea de varios procesos lanzados por el programa 1. Lenguajes concurrentes. Ejemplo: Ada.
2. Lenguajes no concurrentes. Ejemplo: C. Clasificacin Interactividad 1. Lenguajes orientados a sucesos: El flujo del programa es controlado por la interaccin con el usuario o por mensajes de otros programas/sistema operativo, como editores de texto, interfaces grficos de usuario (GUI) o kernels. 2. Lenguajes no orientados a sucesos: El flujo del programa no depende de sucesos exteriores, sino que se conoce de antemano, siendo los procesos batch el ejemplo ms claro (actualizaciones de bases de datos, colas de impresin de documentos, etc.). Clasificacin Interactividad 1. Lenguajes orientados a sucesos: El flujo del programa es controlado por la interaccin con el usuario o por mensajes de otros programas/sistema operativo, como editores de texto, interfaces grficos de usuario (GUI) o kernels. 2. Lenguajes no orientados a sucesos: El flujo del programa no depende de sucesos exteriores, sino que se conoce de antemano, siendo los procesos batch el ejemplo ms claro (actualizaciones de bases de datos, colas de impresin de documentos, etc.). Clasificacin Realizacin visual 1. Lenguajes de programacin visual: El programa se realiza moviendo bloques de construccin de programas (objetos visuales) en un interfaz adecuado para ello 2. Lenguajes de programacin textual: El cdigo del programa se realiza escribindolo. Ejemplos: C, Java. Clasificacin Determinismo 1. Lenguajes deterministas. Ejemplos: Todos los anteriores. 2. Lenguajes probabilsticos o no deterministas: Sirven para explorar grandes espacios de bsqueda, (como gramticas), y en la investigacin terica de hipercomputacin. Ejemplo: mutt (generador de texto aleatorio). Clasificacin Productividad 1. Lenguajes tiles o productivos: Sus virtudes en cuanto a eficiencia, sencillez, claridad, productividad, etc., motiva que sean utilizados en empresas, administraciones pblicas y/o en la enseanza 2. Lenguajes esotricos o exticos: Inventados con la intencin de ser los ms raros, oscuros, difciles, simples y/o retorcidos de los lenguajes, Anexo