Sunteți pe pagina 1din 8

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
Parcial #1
Importancia 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 utilizamos


Para mejorar nuestras técnicas de programación
Programar = definir nuevas extensiones de un lenguaje
Para saber proyectar nuevos lenguajes
Para poder aprender fácilmente nuevos lenguajes

Aspectos a desarrollar en la tarea:

1. Mejora el conocimiento del lenguaje que está usando


El 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ón


Elabore 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ón


Determine 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 lenguaje


Analice 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)
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 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.

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))">

</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.
Programa compilado en C

Programa ejecutado en PHP


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(...)

for(...)

break mark;

S-ar putea să vă placă și