You are on page 1of 3

UNIDAD II: INTRODUCCIN AL DISEO DE LOS LENGUAJES DE PROGRAMACIN. 2.1 Visin del Problema. Cul es el propsito de un lenguaje?

Los lenguajes de computacin pueden ser de propsito general o especficos. C, C++, Java, Pascal, etc. Son lenguajes de programacin de propsito general. SQL, PROMELA, Actionscripts son lenguajes Especficos. Se debe identificar qu es lo que se piensa hacer con el lenguaje, ya que puede ser slo la estructuracin de contenido Web, visualizar informacin o bien realizar la conversin de un documento. HTML es un lenguaje de representacin visual. OWL es un lenguaje de descripcin de elementos. C es un lenguaje programacin. 2.2 Consideraciones Preliminares. - Debemos tomar en cuenta las palabras reservadas del lenguaje, los operadores, los tipos de datos. - Debemos considerar el objetivo del lenguaje, si es un lenguaje de enseanza, si es un lenguaje para profesionales, si el cdigo desarrollado va a ser mejor. Eficiencia de los lenguajes de programacin. Compilacin rpida del cdigo fuente y ejecucin rpida del cdigo objeto. Los factores fundamentales en la calidad del software son: la eficiencia, la portabilidad, la verificabilidad, la integridad, la facilidad de uso, la exactitud, la robustez, la extensibilidad, la compatibilidad y la reutilizacin. En trminos generales, estos factores pueden describirse de la siguiente forma: La eficiencia: capacidad para el aprovechamiento ptimo de los recursos que emplea. La portabilidad: facilidad para ser ejecutados en distintos entornos lgicos o fsicos. La verificabilidad: capacidad para soportar procedimientos de pruebas, test o ensayos. La integridad: nivel de proteccin frente a procesos que traten de alterarlo. La facilidad de uso: comodidad y claridad en la interaccin con el usuario. La exactitud: nivel de precisin que alcanzan los resultados obtenidos. La robustez: capacidad para funcionar correctamente en situaciones extremas. La extensibilidad: capacidad para adaptar su funcionamiento al incremento en sus objetivos. La compatibilidad: facilidad de poder ser aplicados en conjuncin con otros programas. La reutilizacin: posibilidad de utilizarlos (total o parcialmente) en nuevos contextos. Independencia de la mquina. Puesto que diferentes usuarios utilizan diferentes ordenadores, el sistema debe ser accesible por todos ellos, especialmente por las plataformas mayoritarias: Windows, MacOS y Unix. Los programas Windows son independientes de la mquina en la que se ejecutan (o al menos deberan serlo), el acceso a los dispositivos fsicos se hace a travs de interfaces, y nunca se accede directamente a ellos. Esta es una de las principales ventajas para el programador, ya que no hay que preocuparse por el modelo de tarjeta grfica o de impresora, la aplicacin funcionar con todas, y ser el sistema operativo el que se encargue de que as sea. Simplicidad. Un lenguaje debe ser tan simple como sea posible. Debe haber un nmero mnimo de conceptos con reglas simples para su combinacin. Un lenguaje de programacin debe esforzarse en la simplicidad sintctica y semntica. Simplicidad en la semntica implica que el lenguaje contiene un mnimo nmero de conceptos y estructuras. Estos conceptos deben ser naturales, rpidamente aprendidos, y fcilmente entendidos. La simplicidad requiere que un idioma incorpore tan pocos conceptos como sean posibles. El lenguaje debe ser una ayuda para el programador antes de que alcance el estado real de codificacin en programacin. Debe darle un conjunto de conceptos claro, simple y unificado para que pueda usarlos como primarios en el desarrollo de lenguajes. Para ello es deseable tener un nmero mnimo de conceptos diferentes, con las reglas de su combinacin lo ms simples y regulares posibles.

Uniformidad. Ya que la representacin de los objetos que lleva implica tanto el anlisis como el diseo y la codificacin de los mismos. La estructura lgica de la BD definida mediante el LDD debe ser uniforme y acorde al modelo de datos del SGBD, para facilitar la manipulacin de esta estructura. En el caso especfico del LDD, el lenguaje del SGBD debe ser capaz de definir la estructura lgica de la BD, sin entrar en detalles de implementacin ni mecanismos en que se accede a los datos de la BD. Generalizacin y especializacin. La generalizacin dice que algo similar tambin es correcto, pero es difcil de implementar. Hay que especializar para facilitar la implementacin sin perder la utilidad del lenguaje. En Resumen: Para el diseo de lenguajes de Programacin se debe considerar varios aspectos, entre ellos las tareas que se desean realizar y los datos a manejar. Generalmente diseamos un lenguaje porque necesitamos comunicarnos con algo de manera fcil y rpida, por ejemplo un archivo, un hardware, una base de dato; dependiendo de la tarea que se quiera realizar entonces diseamos. Una forma de cmo hacerla y cmo podemos relacionarlo con otras tareas para permitir que esa relacin pueda ser automatizada. Adems de las tareas que se van a realizar tambin se debe pensar en los tipos de datos que se van a manejar, por ejemplo nmeros, cadenas, ya que si se van a realizar operaciones, hay que pensar en que espacio de memoria se van a almacenar. Otras cosas a considerar son como se va a manejar la memoria, y a qu tipo de computadoras estarn enfocados. 2.3 Objetivos y Filosofas del Diseo de los Lenguajes de Programacin. Objetivos. Algunos usos de los lenguajes de programacin son: Comunicacin humana Prevencin y Deteccin de errores Usabilidad Portabilidad Independencia de la mquina. El principal objetivo del lenguaje es, servir de apoyo didctico en una materia de lenguajes de programacin, intrpretes y compiladores. Derivado de este objetivo surgen varias metas especficas y objetivos particulares: La apreciacin del desarrollo e implementacin de un lenguaje de programacin. La comprensin del procedimiento seguido en la formacin de un conjunto de reglas gramaticales que permiten identificar y nombrar sin ambigedad acciones y secuencias ordenadas de acciones sobre el contexto especfico de un problema en particular. Proporcionar un medio de familiarizacin con la realizacin de operaciones aritmticas usando una pila y su posterior extensin para la manipulacin de otros datos. La clara especificacin y adecuada documentacin del proceso de creacin o extensin de un lenguaje y sus resultados. Filosofa en el diseo del lenguaje. Se debe lograr una correcta comunicacin entre emisor y receptor. Es ms importante que un programa sea legible que escribible, ya que un programa generalmente se escribe una vez y se lee muchas veces (documentacin, mantenimiento, etc.). La tendencia actual es separar la interfaz de la Implementacin. Tratar de hacer lenguajes para mltiples arquitecturas de computadoras (mquinas virtuales). Control de apuntadores. Control de tipo de datos robustos. Simplicidad por eficiencia. 2.4 Diseo Detallado. El diseo detallado tiene que ver con la especificacin de detalles algortmicos, representaciones concretas de datos, interconexiones entre funciones y estructuras de datos, y empaque del producto de programacin.

El diseo detallado tiene que ver ms con aspectos semnticos y menos con detalles sintcticos que es la instrumentacin. El diseo detallado considera las caractersticas como: Patrones de diseo Paquetes (bibliotecas, APIs, componentes) Excepciones Validaciones Marco de trabajo Utileras auxiliares (preprocesador, enlazador) Inclusin de otros lenguajes. El punto de inicio para el diseo detallado es una estructura arquitectnica a la que se le van a proporcionar los detalles algortmicos y las representaciones concretas de datos. Mientras que hay una fuerte tentacin para proceder directamente de la estructura arquitectnica a la instrumentacin, hay varias ventajas que pueden lograrse en el nivel intermedio de detalle proporcionado por el diseo detallado. La instrumentacin comunica los aspectos de la sintaxis del lenguaje de programacin, el estilo de codificacin, la documentacin interna, y la insercin de pruebas y depuraciones al cdigo. Las dificultades que se encuentran durante la instrumentacin casi siempre se deben al hecho de que el instrumentador simultneamente est realizando anlisis, diseo y actividades de codificacin mientras intenta expresar el resultado final en un lenguaje de instrumentacin. El diseo detallado permite el diseo de algoritmos y representaciones de datos en un nivel ms alto de abstraccin y notacin que el que proporciona el lenguaje de instrumentacin. El diseo detallado separa la actividad de diseo a bajo nivel de la instrumentacin, igual que las actividades de anlisis y diseo aslan las consideraciones de lo que se desea de la estructura que lograr los resultados deseados. Una especificacin adecuada de diseo detallado minimiza el nmero de sorpresas durante la instrumentacin del producto. 2.5 Caso de estudio. Explicar el lenguaje que se va a desarrollar en el curso: oPor qu se va a desarrollar (problemtica)? oVocabulario del lenguaje (lxico palabras clases que hacen) oReglas de estructura (gramtica, sintaxis) oSemntica oSi existe cdigo intermedio oSi se mejora ese cdigo oEl cdigo objeto final.

You might also like