Download Algunos Fundamentos Teóricos de la Programación de

Document related concepts

Programación funcional wikipedia , lookup

Scala (lenguaje de programación) wikipedia , lookup

J (lenguaje de programación) wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Transcript
Algunos Fundamentos Teóricos de la Programación de
Computadores
Alejandra Duque Ceballos
Ingeniera Electrónica, Universidad Autónoma de Manizales.
Estudiante Maestría en Gestión y Desarrollo de Proyectos de Software
Abstract. Se presentan los datos teóricos relevantes para el entendimiento de
los conceptos básicos de la programación, se nombran clasificaciones y tipos
relevantes para dar una idea general al nuevo y futuro programador.
Keywords: historia de la programación, lenguajes, alto nivel, bajo nivel,
programación estructurada, programación orientada a objetos, Uml, Eiffel.
1 Introduction
Con este artículo se pretende dar a conocer parte de los fundamentos teóricos
necesarios para hacer que el estudiante se familiarice con algunas de las
clasificaciones comunes de los lenguajes de programación.
Este artículo ofrece una visión muy general de los conceptos informativos básicos
de los diferentes tipos de programación.
1.1 Fundamentos
La programación es un conjunto de símbolos y sintaxis y se utiliza
para controlar el comportamiento lógico de una máquina. Un lenguaje
de programación permite especificar al programador de una forma más
precisa sobre qué datos debe operar una computadora y que acciones
tomará bajo ciertas circunstancias, y todo esto es por medio de un
lenguaje de intenta estar relativamente cercano al lenguaje humano. [1]
1.2 Clasificación por su nivel de abstracción
Se puede hablar de dos clases grandes de lenguajes clasificados por
su nivel de abstracción, el primero de ellos de bajo nivel, que no
necesitan ser traducidos porque son legibles directamente por la
máquina, por esto consumen poca y valiosa memoria, ya que ahorran
tiempo de ejecución.
El segundo es de Alto nivel, el cuál es normalmente fácil de aprender
porque están formados por elementos de lenguajes comunes o naturales
para los humanos, como el inglés; de esta forma, se tiene la sensación
que el computador entiende lo que le decimos o que habla nuestro
idioma, lo cuál no es cierto, ya que en su interior solo acepta el
lenguaje binario (1 y 0), es muy rígido y sistemático y no tienen cabida
las ambigüedades. [2]
Fig 1. Clasificación de los lenguajes de acuerdo a su paradigma.
(http://www.desarrolloweb.com/articulos/2358.php)
1.3 Clasificación de acuerdo a su Paradigma
De acuerdo a su paradigma se dividen en varios tipos, uno de ellos
es el lenguaje estructurado.
1.3.1
Lenguaje Estructurado
Surge a finales de los 60’s, proponía soluciones fiables y eficientes y
se facilitaba su comprensión. Cualquiera de estos programas se puede
escribir únicamente utilizando 3 tipos de instrucciones de control:
• Secuencial.
• Condicional.
• Iteración.
En este tipo de programación existen mas estructuras, pero cada una
de ellas se puede construir mediante las tres anteriores.
Se modela mediante diagramas de flujo, el cual es la representación
gráfica de un flujo de una secuencia de rutinas y se llama de esa forma
porque utiliza símbolos conectados por medio de flechas para indicar la
secuencia de la operación.
Fig 2. Ejemplo Diagrama de Flujo
En este tipo de programación se plantea el problema como un todo y
se divide en partes o segmentos más pequeños o de menor complejidad,
una vez terminado cada uno de los segmentos se procede a unificar, la
programación estructurada permite realizar correcciones o
modificaciones de forma sencilla.
Algunos lenguajes de programación son: Basic, C, C++, Visual
Basic.
Entre otras ventajas que se pueden listar están:
• Reducción de los costos del mantenimiento de los programas.
• Los programas pueden ser leídos de forma secuencial y más
rápidamente.
• Facilita la documentación.
• Con la programación modular se puede separar en bloques un
programa que inicialmente sea muy extenso.
• Se utiliza comúnmente para programar dispositivos electrónicos
como microprocesadores y microcontroladores.
Posee también ciertas desventajas:
• Puede obtener un bloque único de programa, que cuando se
hace muy grande puede resultar molesto y problemático para
su manejo y mantenimiento.
• La solución de los problemas se orientan a la máquina. [1]
1.3.2 Programación Orientada a Objetos
Se suele abreviar con POO u OOP, es un paradigma de la
programación, y es una forma mas cercana a como se expresarían las
cosas en la vida real.
Los programas se escriben en términos de objetos, propiedades y
métodos y por esto es que debemos aprender a ver las cosas de otra
forma.
Durante mucho tiempo los programadores se han dedicado a escribir
código, y reescribirlo de nuevo cuando lo necesitan, pero la POO a
logrado que el código sea reutilizado y así optimizar su trabajo.
No es difícil programar en POO, puede ser algo subjetiva ya que
existen muchas formas de hacer lo mismo, pero no todas son las
correctas.
Se pueden listas unas ventajas:
•
Uniformidad: la representación de los objetos lleva implica el
análisis, el diseño y la codificación de los mismos.
•
Comprensión: Tanto los datos que componen los objetos, como los
procedimientos que los manipulan, están agrupados en clases, que
se corresponden con las estructuras de información que el programa
trata.
•
Flexibilidad. Al tener relacionados los procedimientos que
manipulan los datos con los datos a tratar, cualquier cambio que se
realice sobre ellos quedará reflejado automáticamente en cualquier
lugar donde estos datos aparezcan.
•
Estabilidad. Dado que permite un tratamiento diferenciado de
aquellos objetos que permanecen constantes en el tiempo sobre
aquellos que cambian con frecuencia permite aislar las partes del
programa que permanecen inalterables en el tiempo.
•
Reusabilidad. La noción de objeto permite que programas que
traten las mismas estructuras de información reutilicen las
definiciones de objetos empleadas en otros programas e incluso los
procedimientos que los manipulan. De esta forma, el desarrollo de
un programa puede llegar a ser una simple combinación de objetos
ya definidos donde estos están relacionados de una manera
particular.
Uno de los puntos clave a remarcar en esta introducción es que la
programación orientada a objetos no sustituye a ninguna metodología
ni lenguaje de programación anterior. Todos los programas que se
realizan según OOD (Object Oriented Design), se pueden realizar
igualmente mediante programación estructurada. [3]
Se puede observar una desventaja como:
• Para realizar una operación se necesitan más líneas que en la
programación estructurada.
• Consumen mucha memoria del equipo de cómputo.[4]
Algunos lenguajes de OOP son:
Smalltalk, Eiffel, Java.
1.3.2 UML
(Unified Modeling Language - Lenguaje Unificado de
Modelado), es un popular lenguaje de modélalo de sistemas, Se
trata de un lenguaje gráfico para construir, documentar,
visualizar y especificar un sistema de software. Entre otras
palabras, UML se utiliza para definir un sistema de software [5].
Es útil para crear un modelo del sistema, en el cual se puede
representar procesos de negocios, funciones, esquemas de bases
de datos, expresiones de lenguajes de programación, etc. No
necesariamente para aplicaciones que serán programadas en
OOP.
La versión 2 de UML se vale de 13 diagramas diferenciados en
3 categorías:
•
Diagramas de estructura:
Diagrama de clases
Diagrama de componentes
Diagrama de objetos
Diagrama de estructura compuesta (UML 2.0)
Diagrama de despliegue
Diagrama de paquetes
•
Diagramas de comportamiento:
Diagrama de actividades
Diagrama de casos de uso
Diagrama de estados
•
Diagramas de interacción:
Diagrama de secuencia
Diagrama de comunicación
Diagrama de tiempos (UML 2.0)
Diagrama de vista de interacción (UML 2.0) [6]
Algunos programas que sirven para modelar UML son:
StarUML, Magig Draw, PaceStar, etc.
References
1. Gallego Fernandez, M. Isabel. Medina Llinás, Manuel. Algorítmica y Programación para
Ingenieros. Edicions UPC, Págs 19 – 25. (2000).
2. Tipos de Lenguajes de Programaciíon. http://www.monografias.com/trabajos38/tiposlenguajes-programacion/tipos-lenguajes-programacion.shtml
3. Programación orientada a Objetos,
http://www.monografias.com/trabajos14/progorie/progorie.shtml
4. Lo mínimo sobre programación orientada a objetos,
studies.ac.upc.edu/EPSC/TCP/documentos/ActivitatPOO+PM.doc
5. Eriksson, Hans-Erik. UML 2 ToolkitPágs 2 – 10 (2008).
6. Maksimchuk, A. Robert: UML for Mere Mortals, Addison Wesley Professional. Págs. 20 –
25 (2004).