Fundamentos de programacion Unidad 1

Fundamentos de Programación Ing. en Sistemas Computacionales FUNDAMENTOS DE PROGRAMACIÓN 1. CONCEPTOS BÁSICOS Una perso

Views 70 Downloads 4 File size 74KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Fundamentos de Programación Ing. en Sistemas Computacionales

FUNDAMENTOS DE PROGRAMACIÓN 1. CONCEPTOS BÁSICOS Una persona piensa y se comporta obedeciendo a un secuencial lógico, de manera similar una computadora realiza tareas y maneja datos en memoria obedeciendo a una secuencia de pasos lógicos pero a diferencia que ésta última ha sido programada para ello. Programar computadoras es necesario en cualquier área, existen problemas que se pueden presentar y tarden tiempo en resolverlos de manera manual pero la computadora resuelve dichos problemas de acuerdo como se le haya programado de manera rápida. Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno. John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí.

1.1 CLASIFICACIÓN DEL SOFTWARE El Software es el conjunto de programas que ejecuta una computadora. Estos programas contienen instrucciones u órdenes, las cuales se encuentran codificadas en un lenguaje que puede comprender la computadora.

SOFTWARE DEL SISTEMA También llamado software interno, está formado por el conjunto de rutinas que desarrolla el proveedor del equipo con el fin de apoyar a los usuarios en la utilización de los recursos computacionales (sistema operativo, editores, compiladores, etc.) El sistema operativo es el software de sistema más relevante ya que se encarga de administrar todos los recursos computacionales.

SOFTWARE DE APLICACIÓN Se refiere primordialmente a los programas desarrollados por el usuario para resolver un problema específico tal como inventarios o contabilidad.

1.2 ALGORITMO Un Algoritmo es un conjunto ordenado y finito de pasos o instrucciones que conducen a la solución de un problema.

1

Elaboró: L.I. Karina Aidee Romero Alvarado

Fundamentos de Programación Ing. en Sistemas Computacionales

1.3 LENGUAJE DE PROGRAMACIÓN Lenguaje pensado para ser usado por una persona para expresar un proceso por el cual una computadora puede solucionar un problema. Se puede definir un lenguaje de programación como un conjunto de reglas ó normas, símbolos y palabras especiales utilizadas para construir un programa y con él, darle solución a un problema determinado.

1.4 PROGRAMA Conjunto de instrucciones almacenadas para la solución de problemas por computadora de acuerdo a cierta sintaxis y semántica. . La tarea de un programador cuando hace un programa es decirle a la computadora cómo debe usar esos comandos básicos (sistema operativo) que ya sabe para poder realizar lo que el programa quiere hacer, ya sea mostrar una imagen, escribir texto, etc.

1.5 PROGRAMACIÓN Programación de computadoras es la ciencia que permite a una persona programar una computadora para que resuelva tareas de manera rápida. Un Programa de computadora se puede definir como una secuencia de instrucciones que indica las acciones o tareas que han de ejecutarse para dar solución a un problema determinado. La programación también se puede definir como la traducción del algoritmo (diseño de la solución) a un formato que sea legible para la computadora. Si el diseño es lo suficientemente detallado, la codificación es relativamente sencilla.

1.6 PARADIGMAS DE LA PROGRAMACIÓN De acuerdo con el estilo de programación, podemos clasificar los lenguajes en las siguientes categorías:

IMPERATIVO O POR PROCEDIMIENTOS Son aquellos lenguajes, que basan su funcionamiento en un conjunto de instrucciones secuenciales, las cuales, al ejecutarse, van alterando las regiones de memoria donde residen todos los valores de las variables involucradas en el problema que se plantea resolver. Es decir, se cambia progresivamente el estado del sistema, hasta alcanzar la solución del problema. Como un ejemplo ilustrativo vamos a escribir un programa en un lenguaje de este tipo para calcular el factorial de un número positivo x. READ(x); fac := 1 ; for i = 1 to x do { fac := fac * i ; } WRITELN(fac);

2

Elaboró: L.I. Karina Aidee Romero Alvarado

Fundamentos de Programación Ing. en Sistemas Computacionales

En resumen, los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.

DECLARATIVO En este paradigma, más que el ¿cómo? desarrollar paso a paso un proceso, nos interesa el ¿qué? deseamos obtener a través del programa. Quizás el lenguaje declarativo que nos sea más familiar, es SQL, el cual es utilizado para interactuar con la información de bases de datos, concentrándose (como se podrá observar en el siguiente ejemplo), sólo en los resultados que van a ser obtenidos, dejándole al traductor la tarea de cómo llegar a ellos y presentárnoslos SELECT * FROM alumnos WHERE sexo = "M" ORDER BY edad

FUNCIONAL Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial. Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas). Entre los lenguajes funcionales puros, cabe destacar a Haskell y Miranda. Los lenguajes funcionales híbridos más conocidos son Scala, Lisp, Scheme, Ocaml, SAP y Standard ML (estos dos últimos, descendientes del lenguaje ML).

ORIENTADO A OBJETOS Este último paradigma algunas veces se mezcla con alguno de los otros 2 modelos, sin embargo mantiene características propias, que lo diferencian claramente. Los programas de este tipo, se concentran en los objetos que van a manipular, y no en la lógica requerida para manipularlos. Ejemplos de objetos pueden ser: estudiantes, coches, casas etc, cada uno de los cuales tendrá ciertas funciones (métodos) y ciertos valores que los identifican, teniendo además, la facultad de comunicarse entre ellos a través del paso de mensajes. Cabe mencionar con más detalle los elementos fundamentales que deben de poseer este tipo de lenguajes: Abstracción, Encapsulamiento, Modularidad, Jerarquía.

LENGUAJES LÓGICOS La programación lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación; no debe confundirse con la disciplina de la lógica computacional. La programación lógica es un tipo de paradigmas de programación dentro del paradigma de programación declarativa. El resto de los subparadigmas de programación dentro de la programación lógica son: programación funcional, programación basada en restricciones, programas DSL (de

3

Elaboró: L.I. Karina Aidee Romero Alvarado

Fundamentos de Programación Ing. en Sistemas Computacionales

dominio específico) e híbridos. La programación declarativa gira en torno al concepto de predicado, o relación entre elementos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.

1.7 EDITORES DE TEXTO Son aquellos que permiten la entrada de caracteres para su almacenamiento sin realizar operaciones complejas con los mismos.

1.8 COMPILADORES TRADUCTORES Así como existen lenguajes de bajo y alto nivel, también existen distintos tipos de traductores. Dentro de los traductores más comunes están los intérpretes y los compiladores. 

INTÉRPRETES. Son aquellos que van traduciendo línea por línea y no dejan constancia de su traducción de tal manera que cada vez que se desee ejecutar un programa se deberá traducir nuevamente.



COMPILADORES. Son aquellos que traducen el programa dejando constancia de esta para generar el programa ejecutable de tal manera que no requiere una nueva traducción cada vez que se desee ejecutar el programa (solamente en el caso de modificar el programa se debe hacer una nueva traducción).

1.9 EJECUTABLES PROGRAMA EJECUTABLE Es el programa que podemos ver funcionando y este ya no depende del programa fuente. En su interior están las instrucciones precisas para poder ejecutar un programa determinado o varios. Los ordenadores pueden realizar todo tipo de tareas, pero para ello debe indicárseles cómo.

4

Elaboró: L.I. Karina Aidee Romero Alvarado