Documente Academic
Documente Profesional
Documente Cultură
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.
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
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
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.
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.