Portafolio de Marjoree Acevedo

Biografía Comentar esta biografía

Imagen representante Marjoree Julissa Acevedo Rodriguez

Estudiante de la carrera de Ingeniería en sistemas en la Universidad Nacional Autónoma de Honduras, capacitada para desarrollo del trabajo cooperativo y desarrolladas habilidades de comunicación, análisis y solución de trabajos o conflictos.

Una educación general necesaria para comprender el impacto de las soluciones de ingeniería en un contexto global, económico, ambiental y social.

Manejo de lenguajes de programación como ser Java, visual Basic, C++, paquete Microsoft Office, programas de diseño grafico como Corel Drawy Photoshop y sistemas Operativos Windows y Ubuntu, Conocimientos básicos de área de administración y contabilidad.

Manejo del Idioma Ingles en un 50%.

Introducción
Comentar esta sección

Este portafolio contiene en síntesis lo prendido en clases de Lenguajes de programación, sección 1700, impartida por el Ing. Miguel Sauceda en la Universidad Nacional Autónoma de Honduras el primer periodo académico del año 2016.

Entre los conceptos estudiados en clases están el significado de un lenguaje, que es Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica) que permiten agrupar los símbolos para formar las frases del lenguaje. y un lenguaje de programación Que sirve para especificar algoritmos sobre un ordenador. Un programa se escribe como una secuencia de frases del lenguaje. Un lenguaje de programación viene definido por un léxico, una sintaxis y una semántica

Durante el curso también se estudió la historia de los lenguajes su clasificación su uso  y algunas otras características de estos ideas se estudiaron conceptos como léxico y sintaxis, analizador léxico y se trabajó con programación lógica en PROLOG

Historia de los lenguajes programacion
Comentar esta sección

Para llegar a ser un buen programador se requiere del estudio de lenguajes de programación y a su vez comprender  los tipos de lenguajes que existen y cómo podemos clasificarlos.

Todo programador tiene la necesidad de diferenciar y clasificar correctamente los tipos de lenguajes de programación, conociendo sus aplicaciones y los beneficios o desventajas que ofrece cada uno de ellos.

 Antecedentes básicos de la Historia de los lenguajes de programación

Los primeros lenguajes de programación surgieron de la idea de Charles Babagge, la cual se le ocurrió a este hombre a mediados del siglo XIX. Era un profesor matemático de la universidad de Cambridge e inventor inglés, que al principio del siglo XIX predijo muchas de las teorías en que se basan los actuales ordenadores. Consistía en lo que él denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con él colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aquélla supuesta máquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programación, sobre todo si observamos que en cuanto se empezó a programar, los programadores utilizaron las técnicas diseñadas por Charles Babagge, y Ada, que consistían entre otras, en la programación mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios de antaño, se adelantaron un siglo a su época, lo cual describe la inteligencia de la que se hallaban dotados.

El primer lenguaje de programación de alto nivel de amplia difusión es FORTRAN , a finales de 1953 Jonh Backs sometió na propuesta a sus superiores en IBM para desarrollar una alternativa más practica al lenguaje ensamblador para programar la computadora central IB el primer manual de Fortan aparición en 1956, todavía se sigue utilizando en el ámbito universitario  debido a su gran biblioteca de subrutinas y funciones.

En 1960, se creó COBOL uno de los lenguajes más usados aun en 2010 en informática de gestión se utiliza casi exclusivamente en algunos grandes sistemas informáticos como entidades bancarias.

ha medida de la complejidad de tareas que realizaban las computadoras aumentaba se hizo necesario disponer de un método más eficiente para programarlas entonces se crearon los lenguajes de alto nivel como lo fue Basic en 1980, es sin duda el más difundido.

en 1970, Thompson desarrollo un lenguaje experimental al que llamo B, dos años después. Ritchie se basó en B para crear un nuevo lenguaje de propósito general qe denomino C como no depende de la arquitectura del hardware C es uno de los lenguajes más portables del mercado. a principios de los 80 Stroustrup diseño una aplicación de C y en 1984 la convirtió en un compilador que llamo c++ específicamente enfocada a la programación orientada a objetos.

a principios de los 70 el profesor suizo Niklaus Wirth empezó la creación de un nuevo lenguaje llamado PASCAL que permitiera introducirse en la programación de forma fácil pero a la vez potente, Pascal es el lenguaje más sencillo que posibilita el acceso a la informática teórica , descomposición modular punteros, recursividad etc. , Pascal Surgió Como una derivación de ALGOL.

Se encentra también JAVA que hoy en día es ampliamente utilizado en internet, fe desarrollado en 1990 por aes Gosling de Sun microsystem basándose en C y C++

Léxico y sintaxis
Comentar esta sección

Léxico es un Conjunto de símbolos que se pueden usar en un lenguaje.

 Estos símbolos o elementos básicos del lenguaje, podrán ser de los siguientes:

• Identificadores: nombres simbólicos que se darán a ciertos elementos de programación (p.e. nombres de variables, tipos, módulos, etc.).

• Constantes: datos que no cambiarán su valor a lo largo del programa.

• Operadores: símbolos que representarán operaciones entre variables y constantes.

• Instrucciones: símbolos especiales que representarán estructuras de procesamiento, y de definición de elementos de programación.

• Comentarios: texto que se usará para documentar los programas

Sintaxis

 Una sintaxis Consta de unas definiciones, denominadas reglas sintácticas o producciones que especifican la secuencia de símbolos que forman una frase del lenguaje. Estas reglas dicen si una frase está bien escrita o no. Las reglas sintácticas pueden contener dos tipos de elementos:

 • Elementos Terminales

• Elementos no Terminales, que son construcciones intermedias de la gramática.

Existen diversas formas de especificar las reglas, pero únicamente vamos a ver dos de ellas:

• Notación BNF (Backus-Naur Form). Es de las primeras notaciones que se empezó a utilizar para especificar lenguajes de programación.

El BNF se utiliza extensamente como notación para las gramáticas de los lenguajes de programación de la computadora, de los sistemas de comando y de los protocolos de comunicación, así como una notación para representar partes de las gramáticas de la lengua natural (por ejemplo, el metro en la poesía de Venpa). La mayoría de los libros de textos para la teoría o la semántica del lenguaje de programación documentan el lenguaje de programación en BNF.

Diagramas sintácticos.

Es una representación gráfica de la sintaxis. Tiene la ventaja de ser más intuitivo. Los elementos terminales se inscriben en una elipse. Los elementos no terminales se inscriben en un rectángulo.

Clasificación de los lenguajes de alto nivel
Comentar esta sección

Paradigmas de programación

Por paradigma de programación se entiende una “filosofía” de programar, es decir, los lenguajes que utilizan un mismo paradigma de programación utilizarán los mismos conceptos básicos para programar.

Se pueden definir cuatro tipos fundamentales:

- Imperativos

- Orientados a objetos

- Funcionales

- Lógicos

Los lenguajes Imperativos y Orientados a objetos son Procedurales, describen los pasos a seguir para encontrar la solución.

Los lenguajes Funcionales y Lógicos son Declarativos, describen el problema a solucionar

Breve descripción de los paradigmas Imperativos: La unidad de trabajo es la sentencia (acción). Pascal, C.

Orientados a Objetos: La unidad de trabajo es el objeto. Agrupa las estructuras de datos con sus algoritmos. Smalltalk.

Funcionales: La unidad es la función. Consiste en combinar funciones para conseguir funciones más complejas hasta llegar a la función que es el programa. Lisp.Basado en el Cálculo Lambda.

Lógicos: Se especifican los hechos y las propiedades que especifican el problema. El sistema utiliza esa información para encontrar la solución. Prolog. Basado en la Lógica de Predicados.

Generador Lexico
Comentar esta sección

El lex es un generador de programas diseñado para el proceso léxico de cadenas de caracteres de input. El programa acepta una especificación, orientada a resolver un problema de alto nivel para comparar literales de caracteres, y produce un programa C que reconoce expresiones regulares. Estas expresiones las especifica el usuario en las especificaciones fuente que se le dan al lex. El código lex reconoce estas expresiones en una cadena de input y divide este input en cadenas de caracteres que coinciden con las expresiones. En los bordes entre los literales, se ejecutan las secciones de programas proporcionados por el usuario. El fichero fuente lex asocia las expresiones regulares y los fragmentos de programas. Puesto que cada expresión aparece en el input del programa escrito por el lex, se ejecuta el fragmento correspondiente

El formato general de la fuente lex es:

{definiciones}

%%

{órdenes}

%%

{subrutinas del usuario}

Donde las definiciones y las subrutinas de los usuarios se omiten a menudo. El segundo %% es opcional, pero el primero se requiere para marcar el principio de las órdenes. El programa lex mínimo absoluto es por lo tanto %% sin definiciones, ni órdenes lo cual se traduce en un programa que copia el input en el output sin variar.

Expresiones del lex

Una expresión especifica un conjunto de literales que se van a comparar. Esta contiene caracteres de texto que coinciden con los caracteres correspondientes del literal que se está comparando y caracteres operador estos especifican repeticiones, selecciones, y otras características. Las letras del alfabeto y los dígitos son siempre caracteres de texto. Por lo tanto, la expresión integer Coincide con el literal “integer” siempre que éste aparezca y la expresión a57d busca el literal a57d.

Los caracteres operador son:

“ \ [ ] ^ - ? . * + | ( ) $ / { } % < >

Si cualquiera de estos caracteres se va a usar literalmente, es necesario incluirlos individualmente entre caracteres barra invertida ( \ ) o como un grupo dentro de comillas ( “ ). El operador comillas ( “ ) indica que siempre que esté incluido dentro de un par de comillas se va a tomar como un carácter de texto. Por lo tanto xyz“++” coincide con el literal xyz++ cuando aparezca.  una parte del literal puede estar entre comillas. No produce ningún efecto y es innecesario poner entre comillas caracteres de texto normal; la expresión “xyz++” es la misma que la anterior. Por lo tanto poniendo entre comillas cada carácter no alfanumérico que se está usando como carácter de texto, no es necesario memorizar la lista anterior de caracteres operador. Un carácter operador también se puede convertir en un carácter de texto poniéndole delante una barra invertida ( \ ) como en xyz\+\+ el cual, aunque menos legible, es otro equivalente de las expresiones anteriores. Este mecanismo también se puede usar para incluir un espacio en blanco dentro de una expresión; normalmente, según se explicaba anteriormente, los espacios en blanco y los tabuladores terminan una orden. Cualquier carácter en blanco que no esté contenido entre corchete tiene que ponerse entre comillas.

Se reconocen barios escapes C normales con la barra invertida ( \ ):

 

  • \ n newline
  • \ t tabulador
  • \ b backspace
  • \ \ barra invertida

 

Puesto que el carácter newline es ilegal en una expresión, es necesario usar n; no se requiere dar escape al carácter tabulador y el backspace. Cada carácter excepto el espacio en blanco, el tabulador y el newline y la lista anterior es siempre un carácter de texto.

Prolog (Lenguaje de programación)
Comentar esta sección

Lenguaje de programación lógico e interpretado (Prolog). La programación lógica es un paradigma de los lenguajes de programación en el cual los programas se consideran como una serie de aserciones lógicas. De esta forma, el conocimiento se representa mediante reglas, tratándose de sistemas declarativos.

Prolog es un lenguaje de programación simple desarrollado en la Universidad de Aix-Marseille por los profesores Alain Colmerauer y Philippe Roussel, como una herramienta práctica para programación lógica. Nació de un proyecto que no tenía como objetivo la implementación de un lenguaje de programación, sino el procesamiento de lenguajes naturales. Interesado por el método de resolución SL, Trudel persuadió a Robert Kowalski para que se uniera al proyecto, dando lugar a una versión preliminar del lenguaje Prolog a finales de 1971 y apareciendo la versión definitiva en 1972. Esta primera versión de Prolog fue programada en ALGOL W.Inicialmente se trataba de un lenguaje totalmente interpretado hasta que, en 1983, David H.D. Warren desarrolló un compilador capaz de traducir Prolog en un conjunto de instrucciones de una máquina abstracta denominada Warren Abstract Machine, o abreviadamente, WAM. Desde entonces Prolog es un lenguaje semi-interpretado.

Elementos en Prolog

 para construir programas en Prolog necesitamos una serie de elementos:

Átomos: Es una definición genérica de un objeto del mundo que queremos representar. Predicados: Nos permite especificar características de los objetos de nuestro mundo o las relaciones entre ellos.

Hechos: Es algo que está ocurriendo en el mundo, característica o relación entre objetos. En el lenguaje natural un hecho podría ser por ejemplo que Lógica y Compatibilidad es una asignatura de Ingeniería Informática. Expresan relaciones entre objetos. Suponiendo que se quiera expresar el hecho de que "un coche tiene ruedas". Este hecho, consta de dos objetos, "coche" y "ruedas", y de una relación llamada "tiene". La forma de representarlo en PROLOG es:

tiene (coche, ruedas).

Los nombres de objetos y relaciones deben comenzar con una letra minúscula. Primero se escribe la relación, y luego los objetos separados por comas y encerrados entre paréntesis. Al final de un hecho debe ir un punto ("."). El orden de los objetos dentro de la relación es arbitrario, pero debemos ser coherentes a lo largo de la base de hechos. Variables No es variable con el concepto que se tiene de ella en la programación habitual. En Prolog, una variable representa el valor de un Átomo. Representan objetos que el mismo PROLOG determina. Una variable puede estar instanciada ó no instanciada. Estar instanciada cuando existe un objeto determinado representado por la variable. Los nombres de variables comienzan siempre por una letra mayúscula. Un caso particular es la variable anónima, representada por el carácter subrayado ("_"). Es una especie de comodín que utilizaremos en aquellos lugares que debería aparecer una variable, pero no nos interesa darle un nombre concreto ya que no vamos a utilizarla posteriormente. Reglas Las reglas se utilizan en PROLOG para significar que un hecho depende de uno ó mas hechos. Son la representación de las implicaciones lógicas del tipo p ---> q (p implica q). Una regla consiste en una cabeza y un cuerpo, unidos por el signo ":-". La cabeza está formada por un único hecho. El cuerpo puede ser uno ó mas hechos (conjunción de hechos), separados por una coma (","), que actúa como el "y" lógico. Las reglas finalizan con un punto (".").