parcial#1-importancia del estudio de los lp

10

Click here to load reader

Upload: api-3696445

Post on 07-Jun-2015

503 views

Category:

Documents


0 download

DESCRIPTION

Parcial#1-Importancia del estudio de los LP.doc

TRANSCRIPT

Page 1: Parcial#1-Importancia Del Estudio de Los LP

UNIVERSIDAD DE PANAMÁ

CENTRO REGIONAL DE VERAGUAS

FACULTAD DE INFORMÁTICA, ELECTRÓNICA Y COMUNICACIONES

LICENCIATURA EN INGENIERIA EN INFORMATICA

ESTRUCTURA DE LOS LENGUAJES DE PROGRAMACION

PARCIAL # 1

“Importancia del estudio de los lenguajes de programación”

Presentado por:

Carlos De Gracia 9-721-393

Profesor:

Diego Santimateo

III Año

II Semestre

3 de Septiembre de 2007

Page 2: Parcial#1-Importancia Del Estudio de Los LP

Parcial #1Importancia del estudio de los lenguajes de programación

Para concretar la lectura del capítulo 1: El estudio de los lenguajes de programación del libro Lenguajes de Programación de Terrence W. Pratt, proponemos la realización del siguiente ejercicio, el cual debe ser entregado individualmente el 1 de septiembre.

Resumen:¿Por qué estudiar Los Lenguajes de Programación?

Para entender el diseño e implementación de los lenguajes: sintaxis - reglas de construcción de los programas semántica - significado de los programas implementación - cómo se ejecutan pragmática - aspectos prácticos de su uso

Para saber qué lenguaje es más apropiado para resolver cierto tipo de problemas: imperativo: PascaL / C / PHP Orientado a Objetos: SMALLTALK / C++ / JAVA Funcional: Haskell / LISP/ ML Lógico: Prolog / Mercury / Goedel

Para mejorar el conocimiento de los lenguajes que ya utilizamosPara mejorar nuestras técnicas de programación Programar = definir nuevas extensiones de un lenguajePara saber proyectar nuevos lenguajesPara poder aprender fácilmente nuevos lenguajes

Aspectos a desarrollar en la tarea:

1. Mejora el conocimiento del lenguaje que está usandoEl lenguaje más utilizado por ustedes es el C, no obstante, le invitamos a leer sobre expresiones regulares y luego hacer uso del scanf(“% [ ]”) para identificar cuál es la verdadera función del scanf(“% [ ]”). Presente los ejemplos utilizados por usted con sus respectivas observaciones y comentarios. ¿Cuál es el papel de las expresiones regulares en el scanf?(10 ptos)

2. Enriquece su vocabulario de construcciones útiles de programaciónElabore un glosario de 10 términos nuevos para usted, que considere de importancia en el área de programación. Seleccione uno y haga un ejemplo. (10 ptos)

3. Permite una mejor selección del lenguaje de programaciónDetermine cual de los siguientes lenguajes recomienda para leer una línea de texto y separarla en palabras: C, Pascal, PHP. Explique, ejemplifique y concluya.(10 ptos)

4. Facilita el diseño de un nuevo lenguajeAnalice la estructura de control conocida como GOTO. Identifique lenguajes que la incluyen en su diseño y comente sobre nuevas estructuras de control inspiradas en el uso del GOTO y en qué lenguajes aparecen. Explique, ejemplifique y concluya. (10 ptos)

Page 3: Parcial#1-Importancia Del Estudio de Los LP

MEJORAR EL CONOCIMIENTO DEL LENGUAJE QUE ESTÁ USANDO

Para conocer el papel de las expresiones regulares en el scanf, primero conoceros el concepto de expresión regular.

Las expresiones regulares constituyen un mecanismo bastante potente para realizar manipulaciones de cadenas de texto. El proceso para el que se usan estas expresiones es el de buscar y/o substituir una subcadena de texto dentro de otra cadena.

A continuación veremos cómo se da el funcionamiento del scanf (“% [ ]”).

Podemos observar que la función scanf con el parámetro %s no puede guardar cadenas de caracteres con espacios en blanco, pero sí podrás hacerlo con %[ ].

Esto funciona de tal forma que entre los corchetes se colocan los caracteres que aceptará o los que no aceptará.

Por ejemplo:scanf("%[a-z]", s);

Reconocerá una cadena con caracteres que estén entre la 'a' y la 'z' incluidas. En cuanto encuentre un carácter distinto, parará.

Si se pone scanf("%[^.]", s), encajará con todo, excepto con un punto. La cadena de caracteres que devuelve meterá todo, incluidos espacios, hasta que encuentre un punto.

Para que lea una línea entera, con espacios incluidos, hasta que pulse entrar, sería:scanf("%[^\n]", s);

Conociendo el funcionamiento de la función scanf, podemos definir de qué forma actúan las expresiones regulares en el scanf:

Los corchetes en la función scanf, dentro de las expresiones regulares, tienen la función de representar "clases de caracteres", o sea, agrupar caracteres en grupos o clases. Son útiles cuando es necesario buscar uno de un grupo de caracteres.

Como parte de las expresiones regulares utilizadas en nuestros programas por el scanf, existen alternativas de interpretar los caracteres entre los corchetes de forma opuesta, mediante el operador (^) ; es

Page 4: Parcial#1-Importancia Del Estudio de Los LP

decir, se leerán los caracteres mientras no coincida con los caracteres incluidos en los corchetes. Veamos el siguiente ejemplo.

char *cad;

scanf("%s ", cad); // No se puede leer un espacio en blanco.

scanf("%[ ABCD]",cad); // Lee solo los espacios en blanco y las letras

// especificadas ( ,A,B,C,D).

scanf("%[^\nABCD]",cad); // Lee todos los caracteres salvo (\n) y los

// caracteres (A,B,C,D)

scanf("[^\n]",cad); // Lee todos los caracteres salvo (\n).

Por este motivo es útil la implementación de expresiones regulares, ya que nos da más flexibilidad a la hora de manejar cadenas de caracteres.

ENRIQUECE SU VOCABULARIO DE CONSTRUCCIÓN ÚTILES DE PROGRAMACIÓN.

Glosario de términos

1. Lenguaje compilado: un lenguaje de programación que típicamente se implementa mediante un compilador. Esto implica que una vez escrito el programa, éste se traduce a partir de su código fuente por medio de un compilador en un archivo ejecutable para una determinada plataforma.

2. Código nativo: se refiere al código fuente, es decir el programa que escribe el programador informático en alguno de los lenguajes de programación existentes para luego tras compilar y linkear, convertirlo en un programa ejecutable.

3. Mixins: En lenguajes de programación orientada a objetos, un mixin es una clase que ofrece cierta funcionalidad para ser heredada por una subclase, pero no está ideada para ser autónoma.

Page 5: Parcial#1-Importancia Del Estudio de Los LP

4. Programación Orientada a Aspectos (POA): es un paradigma de programación relativamente reciente cuya intención es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de conceptos.

5. Closures: (cierre) es una función definida dentro del cuerpo de otra. Dentro de ella podemos acceder a las variables definidas dentro de la función padre.

6. Lenguajes declarativos: se conocen a aquellos lenguajes de programación en los cuales se le indica a la computadora que es lo que se desea obtener o que es lo que se está buscando.

7. JavaScript: es un lenguaje interpretado, es decir, que no requiere compilación, utilizado principalmente en páginas web, con una sintaxis semejante a la del lenguaje Java y el lenguaje C. Como ejemplo se muestra un código sencillo de JavaScript:

_______________________________________________________________________

..

<HEAD>

...

<SCRIPT Laguage="JavaScript">

<!--

function Cuadrado(numero) {

return numero * numero;

}

//-->

</SCRIPT>

...

</HEAD>

<BODY>

...

<CENTER><FORM>

El cuadrado de 5 es:

<INPUT Type="button" Value=" ejemplo2 " onClick="alert(Cuadrado(5))">

Page 6: Parcial#1-Importancia Del Estudio de Los LP

</FORM></CENTER>

8. Lenguaje de autor: son lenguajes de programación de muy alto nivel dirigidos a facilitar la elaboración de programas informáticos a personas con pocos conocimientos informáticos.

9. Paradigma: Conjunto de opiniones, valores y métodos compartidos por los integrantes de un colectivo.

10. Lenguaje de simulación: es un software de simulación de naturaleza general y posee algunas características especiales para ciertas aplicaciones.

PERMITE UNA MEJOR SELECCIÓN DEL LENGUAJE DE PROGRAMACIÓN

En C el manejo de “CADENAS” es como si manejará ARREGLOS ya que no existe este tipo de dato (a pesar de que cuente con su librería: strings.h) En Pascal el manejo de “CADENAS” es más poderoso y exacto, cuenta con este tipo de dato, y además también cuenta con la librería o unidad: “Strings.Pas”.

En PHP existe una gran flexibilidad y facilidad del manejo de cadenas, ya que existen bastantes funciones para el manejo de cadenas.

Por lo tanto concluyo que para realizar la lectura de una línea de texto y separarla en palabras, recomiendo el lenguaje PHP, ya que como mencione antes permite gran flexibilidad y facilidad en el manejo de cadenas, además de que tiene un manejo automático de memoria para las cadenas y minimiza la cantidad de código.

Como ejemplo podemos ver una comparación entre un programa en C y uno en PHP, para ilustrar el manejo de cadenas.

Page 7: Parcial#1-Importancia Del Estudio de Los LP

Programa compilado en C

Programa ejecutado en PHP

Page 8: Parcial#1-Importancia Del Estudio de Los LP

FACILITA EL DISEÑO DE UN NUEVO LENGUAJE.

GOTO o GO TO (ir a en inglés) es una sentencia o instrucción muy común en los lenguajes de programación con el objetivo de controlar el flujo del programa. El efecto de su versión más simple es transferir sin condiciones la ejecución del programa a la etiqueta o número de línea especificada.

La instrucción se puede encontrar en muchos lenguajes; uno de los primeros lenguajes de alto nivel que lo incluyeron fue el FORTRAN. También se lo encuentra en: Algol, COBOL, SNOBOL, BASIC, Lisp, C, C++, Pascal y Perl entre otros, especialmente el lenguaje ensamblador.

Se pueden encontrar también variaciones de la sentencia GOTO. Por ejemplo en BASIC, la sentencia ON GOTO puede seleccionar de una lista de diferentes puntos del programa a los que saltar. Podría ser interpretado como un antecesor de la sentencia switch/case. También, en FORTRAN y algunas versiones de BASIC la línea a la que saltar podía ser indicada mediante una expresión aritmética. Esto último era evitado ya que el código se hacía aún más ilegible teniendo en cuenta la necesidad de hacer los cálculos de la expresión de control para saber el destino del flujo del programa.

Existen estructuras de control inspiradas en el GOTO, tal es el ejemplo de el break, en Java, con una marca que se puede usar para salir en un salto de varios bucles intercalados.

También existe un continue con marca que permite saltar al principio de un bucle más allá del actual.

Al igual, en C++ se puede emular con los breaks y continues y con las secuencias try-catch-finally.

A continuación puede ver un ejemplo de una estructura de control que es inspirada en el GOTO:

mark:

while(...)

Page 9: Parcial#1-Importancia Del Estudio de Los LP

{

for(...)

{

break mark;

}

}