Los Pecados Capitales

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Los Pecados Capitales as PDF for free.

More details

  • Words: 1,716
  • Pages: 10
Universidad de Panamá Centro Regional Universitario de Veraguas. Facultad de Informática, Electrónica y Comunicación.

Materia: Estructura de los lenguajes de programación.

Facilitador: Santimateo, Diego.

Laboratorio 2: Los 7 pecados capitales de la programación

Realizado por: Santillana, Fabricio. Cédula: 2-718-1147

II semestre. 17 de Diciembre del 2007

Los siete pecados capitales de la introducción al Diseño de los lenguajes de programación Laboratorio #2 Objetivos  Analizar debilidades del diseño de los lenguajes de programación, particularmente en el proceso de enseñanza aprendizaje de los mismos.  Proponer mejoras tendientes a minimizar las debilidades del diseño en función de la curva de aprendizaje de los lenguajes.  Utilizar espacio virtual como apoyo al proceso de aprendizaje. Procedimiento 1. Proceda a leer con mucho detenimiento y concentración el artículo que presentamos en la referencia. Tome apuntes, consulte y proceda a hacer su propio análisis de la lectura (No más de cuatro párrafos). Revise el concepto de análisis antes

de

publicar

el

suyo

en

http://www.esnips.com/web/estructuraLP. (10 ptos). 2. Ejemplifique utilizando algún lenguaje de programación, tres de los siete pecados capitales, solo un ejemplo en cada caso. Puede usar varios lenguajes. En cada caso proponga y explique una alternativa para eliminarlos. Presente su ejecutoria impresa.(10 ptos) 3. En un documento impreso describa el resultado de la evaluación de dos lenguajes de programación, utilizando los criterios propuestos en el documento de lectura. Justifique la selección de los lenguajes y la ponderación dada en cada criterio. (15 ptos).

4. Después de esta experiencia usted debe estar en disposición de

opinar

sobre

el

análisis

que

han

presentado

sus

compañeros en el punto #1. Haga conocer su opinión o reflexión sobre el análisis de otros, utilizando comentarios de texto en http://www.esnips.com/web/estructuraLP (15 ptos). Referencia Linda Mciver & Damian Conway. Department of Computer Science. Monash University, Victoria, Australia. http://www.csse.monash.edu.au/~damian/papers/PDF/SevenDea dlySins.pdf Observaciones  Usted debe ser lo más original posible, ya que copiar y pegar será evaluado con cero puntos.  http://www.esnips.com/web/estructuraLP/ está en Internet, de manera que sus aportes recorrerán todo el mundo, por favor revise su sintaxis y semántica antes de hacer su aportación.

1. Análisis de la lectura Los siete pecados capitales de la programación es un documento que trata sobre los problemas que surgen en la enseñanza de lenguajes de programación. Según el documento los lenguajes de programación están en constante evolución tomando en cuenta las experiencias de los usuarios y de esta manera incorporar nuevas rutinas, mejorar en la semántica y en la estabilidad, lograr una sintaxis más clara y más restricciones, pero en este proceso de desarrollo se omite la idea de la sencillez y la estandarización de los lenguajes lo cual facilitaría su enseñanza y evitando así cometer alguno o todos de los sietes pecados capitales. Más es menos, es el primer pecado capital, el cual nos plantea que aquellos lenguajes basados en la abstracción y en la sencillez son los mejores para la enseñanza, pero el problema radica en que pueden haber múltiples enfoques para resolver un problema ocasionando que no existe la especialización por parte de los estudiantes, los que nos lleva al segundo pecado capital: más es más aquí se considera pecado la gran funcionalidad aplicable de los lenguajes como C++ y Ada en la enseñanza de los lenguajes por que no es posible enseñar

todo o es ignorado partes del lenguaje en si. Otro pecado capital son los tiempos gramaticales en donde la equivalencia de conceptos dificulta a los estudiantes la diferencia entre uno u otro; tal es el caso de las listas en Haskell y Prolog. Otro pecado mencionado en el documento es: La dependencia de hardware. Este pecado dificulta a la enseñanza por que muchos lenguajes de programación limitan el uso de memoria, además la portabilidad se ve comprometida. En la mayoría de los lenguajes existen rangos para los distintos tipos datos, si se sobrepasa este limite pude generar resultados y errores confusos para un estudiante. Otro punto destacado es la compatibilidad atrasada de los lenguajes de programación. Muchos lenguajes de programación derivan de otros lenguajes por lo que, una vez diseñado, se espera que introduzca nuevos conceptos, pero como ocurre en C y C++ en donde se perpetúa el uso de módulos, se siguen cometiendo los mismos errores. El documento también hace referencia al hecho de no conocer como se realizan los procesos en un nivel bajo de programación como un pecado capital el cual lo llama excesiva habilidad. El poder que ofrecen muchos lenguajes para la realización de algoritmos en donde todo se resume en una simple palabra reservada o función de librería. El estudiante podrá aprender como usar las herramientas que les ofrece el lenguaje, pero las mismas no lo obligara a conocer el funcionamiento a un nivel bajo del lenguaje o realmente el significado de las expresiones. Ahora, cuando se inicia la enseñanza de lenguajes de programación el estudiante tiende a considerar que el resto de los lenguajes posee semánticas iguales y que sólo se difieren en la sintaxis, esto es la violación de expectativa. 2. Ejemplos: 1. Dependencia del hardware: existe un rango en los tipos de datos. Para un estudiante pude resultar confuso dado que cada

lenguaje establece sus propias pautas en el rango dependiendo de la máquina y la implementación

Este código genero la siguiente salida: el cual muestra un resultado totalmente inesperado, un número con valor negativo dado que la operación se realizo mediante el uso de dos números positivos.

Posibles alternativas: El lenguaje C es ampliamente utilizado en la enseñanza, pero por ser de nivel medio es fácil cometer este tipo de errores. Además, C no cuenta con un sistema de excepciones lo cual le indicaría con mayor claridad al estudiante lo que esta haciendo, esto sería una posibilidad solución, pero alejada un poco de realidad por que sería necesita la mejora del propio lenguaje. Otra posible solución sería implementar en la enseñanza de los lenguajes los errores más comunes que se producen o pueden ser producto de un mala uso del lenguaje.

2. Habilidad excesiva: el típico problema de estructuras de datos el cual consiste en mantener u ordenar los datos almacenado en una array. Muchos lenguajes ofrecen herramientas para ordenar array, pero un programador novato puede caer en el pecado de depender de estas, lo cual no es malo, pero ¿qué ocurre cuando se deben ordenar el o los arrays y la herramienta del lenguaje falla, por que el tipo o la cantidad de argumentos

con la cual puede funcionar la

herramienta no es el adecuado?.

Posibles alternativas: Es bueno que se utilice el uso de métodos en el lenguaje java que permiten el ahorro de tiempo y de líneas de códigos, pero se pueden evitar muchas confusiones para los estudiantes cuando estos métodos fallan mediante la enseñanzas de algoritmos que permitan manipular los datos de un array, ya sea, para la realización de búsquedas u ordenarlos.

3. Violación de expectativas: Lenguajes como Prolog utilizan el operados (=) para ligar variables. Prolog utiliza el sistema de programación basada en predicados, si un predicado falla también lo hará toda la cláusula y se detiene la ejecución del programa. Un estudiante esperaría, que el programa no terminara su ejecución y que el uso del operador (=) fuese usado para asignar o verificar, no parar ligar variables.

La ejecución del código Prolog inicia con la consulta de la cláusula consulta. Luego la variable A es ligada con el valor leído e inicia la comparación del valor ligado a A con 0. Cuando la verificación es positiva un literal es ligado a la variable B, la verificación termina cuando algunos de los predicados fallas y es impreso el valor de B. Posibles alternativas: Para una mejor enseñanza deberá dejarse claro que los distintos lenguajes

de

programación

pertenecen

a

distintos

estilos

o

paradigmas de programación desde el principio y así evitar futuras confusiones

3. Resultado de la evolución del lenguaje C y Java Se han elegido los lenguajes C y Java por su sintaxis similar y por que muchos lenguajes, incluyendo Java, derivan de C. El desarrollo del lenguaje C ha desencadenado la enseñanza de los lenguajes de programación dado que, desde sus inicios se convirtió en uno de los lenguajes más populares. Se trata de un lenguaje de nivel medio, pero con muchas de las características de un lenguaje de bajo nivel, lo que lo hace ideal para la implementación de sistemas operativos. Con el lenguaje C es posible enseñar programación en un nivel muy bajo mediante el uso de punteros y con el cual es posible iniciar el desarrollo de otros lenguajes. Dispone de las estructuras típicas de los lenguajes de alto nivel y Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos. Uno de los objetivos de diseño de este lenguaje fue que sólo fueran necesarias unas pocas instrucciones en lenguaje máquina para traducir cada elemento del lenguaje, sin que hiciera falta un soporte intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes. En consecuencia, el lenguaje C está disponible en múltiples plataformas. Además, a pesar de su naturaleza de bajo nivel, el lenguaje se desarrolló para incentivar la programación independiente de la máquina. Java es un lenguaje que toma mucha de su sintaxis de C, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel como punteros y que cuenta con independencia del hardware gracias al uso de la máquina virtual desarrollada por Sun Java que en un principio era una máquina virtual interpretada el cual generaba programas que se ejecutaban comparativamente más lentos que aquellos escritos en C. El código Java puede ser a veces redundante en comparación con otros lenguajes esto es en parte debido a las frecuentes declaraciones de tipos y conversiones de tipo manual. En si, Java es un lenguaje que cuenta con una gran cantidad herramientas que facilitan la reutilización de códigos y que se ha convertido en un lenguaje muy popular ideal para la enseñanza.

Evaluación en ambos lenguajes Pecados Menos es Más Más es Más Tiempo Gramaticales Dependencia del Hardware Compatibilidad atrasada Habilidad excesiva Violación de expectativa Puntos

Lenguaje C

Lenguaje Java

• • •









• •

5

4

Related Documents

Pecados Capitales
October 2019 25
Los Pecados Capitales
November 2019 17
Siete Pecados Capitales
November 2019 19
Los 7 Pecados Ma
November 2019 33
Pecados
November 2019 28