Download 1° Semestre

Document related concepts

Haxe wikipedia , lookup

Programación con datos masivos en R wikipedia , lookup

Lisp wikipedia , lookup

Transcript
1
INSTITUTO TECNOLOGICO SUPERIOR
DE ALVARADO – Campus Medellín
INGENIERÍA EN
SISTEMAS COMPUTACIONALES
Materia:
Fundamentos de Programación.
Semestre - Grupo - Sistema:
1° Semestre - Grupo “Único”–Semi-Escolarizado.
Producto Académico:
Unidad 1
“Conceptos Básicos”
Presenta:
Víctor Bonilla
Miguel Campos
Tirso Reyes Hernández
Leonardo Daniel Pérez Cano
Luis Ángel Salinas Valenzuela
José Alfredo de Jesús Espejo Ochoa
Páez Vásquez Cinthya Nahama
Simón Cortes
Docente:
I.S.C: Gregorio Martínez Vásquez
MEDELLIN DE BRAVO, VER.AGO. – DIC. 2014
2
ÍNDICE
Índice ............................................................................................................................
Objetivo del trabajo .......................................................................................................
Introducción ..................................................................................................................
1.2 Algoritmo .................................................................................................................
1.3 Lenguajes de Programación ..................................................................................
1.4 Programa ................................................................................................................
1.5 Programación ..........................................................................................................
1.6 Paradigmas de programación ................................................................................
1.7 Editores de texto .....................................................................................................
1.8 Compiladores……………………………………………………………………………..
1.9 Ejecutables……………………………………………………………………………….
1.10 Consola de línea de comandos ……………………………………………………..
Conclusión ....................................................................................................................
3
OBJETIVO
El presente trabajo tiene la finalidad de sintetizar los contenidos de la unidad uno de
fundamentos de programación, y de este modo demostrar el grado de entendimiento de los
contenidos de dicha unidad...
3
4
INTRODUCCIÓN
En este trabajo encontraremos un resumen de los conceptos básicos de fundamentos de
programación, este material enlista sistemáticamente las terminologías más utilizadas en cuando al
amplio mundo de la programación, y está explicado colegialmente con el objetivo de que su lectura
sea de lo más entendible.
4
5
1.2 ALGORITMOS
En distintas disciplinas su significado es el mismo, es un conjunto de pasos o reglas que permiten
que quien empiece a seguirlas no tenga problemas para llevar a cabo la actividad y obtenga el
resultado prescrito un ejemplo fácil seria un instructivo de algún celular.
"Los algoritmos son el objeto del estudio de la algoritmia"
En las matemáticas son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la
división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo
común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de
ecuaciones.
Los algoritmos se describen en 3 niveles:
Descripción de alto nivel: Se establece el problema, se selecciona un modelo de solución que
puede ser matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y
omitiendo detalles.
Descripción formal: Se usa un diagrama de flujo o pseudocódigo para describir la secuencia de
pasos para llegar a la solución
Implementación: Se muestra el algoritmo expresado en un lenguaje de programación específico o
algún objeto capaz de llevar a cabo instrucciones.
Los Algoritmos suelen ser expresados en:
Diagramas de flujo: Su construcción es laboriosa por lo tanto son usados para representar algoritmos
pequeños, están regidos por la ISO. Son descripciones gráficas de los algoritmos en los cuales se
usan símbolos unidos con flechas para indicar la secuencia de instrucciones
Pseudocódigo: "falso código, falso lenguaje, el prefijo pseudo significa falso"
La ventaja del pseudocódigo es que no requieren tanto espacio para representar instrucciones
complejas emplea lenguaje natural con convenciones sintácticas propias de lenguaje de
programación, es utilizado para describir algoritmos en libros y publicaciones científicas. Para
5
6
describir un algoritmo se usan tres niveles, la descripción de alto nivel, la descripción formal y la
implementación
1.3 Lenguajes de programación
Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones a través
de máquinas como las computadoras. Son usados para crear programas que controlen el
comportamiento físico y lógico, expresar algoritmos con precisión o como medio de comunicación
humana. Estando estructuradas por un conjunto de símbolos, reglas sintácticas y semánticas que
definen sus elementos y expresiones.
Los lenguajes informáticos engloban a los lenguajes de programación y a otros más como por
ejemplo HTML el cual es un lenguaje para el mercado de páginas web que no es propiamente un
lenguaje de programación si no un conjunto de instrucciones que permiten diseñar el contenido de
los documentos.
1.4 Programa.
Un programa es un conjunto de instrucciones u órdenes dadas a la máquina que producirán la
ejecución de una o varias tareas. Un programador es la persona que escribe programas a través de
lenguajes de programación.
Sin programas las computadoras no pueden funcionar. Un software es un conjunto de programas, es
el soporte lógico de una computadora digital.
En informática una vez que las instrucciones se han escrito en un lenguaje de programación (código
fuente), han sido traducidas al único idioma que la máquina comprende, combinaciones de unos y
ceros llamado código máquina, código binario o código ejecutable.
Generalmente el código fuente lo escriben profesionales conocidos como programadores. El código
fuente se escribe en un lenguaje que fue creado usando algún paradigma imperativo, declarativo,
orientado a objetos y que posteriormente puede ser convertido en un código ejecutable a través de
un programa compilador. Solo los programas ejecutables pueden “correrse” por el procesador
ejecutando instrucción por instrucción.
6
7
Un programa informático es un conjunto de instrucciones que una vez ejecutadas realizaran una o
varias tareas. Los programas informáticos se clasifican en software de sistema y software de
aplicación. Una multitarea es el hecho de ejecutar varios programas de forma simultánea y eficiente.
1.5.- Programación:
Conocemos por programación al proceso mediante el cual escribimos, compilamos,
probamos, depuramos y mantenemos un código fuente de un programa informático.
Pasos a seguir para hacer un código informático:

Análisis del problema: Entender bien el problema.

Diseño de una solución: Desarrollar el algoritmo.

Codificación: Escritura del programa en algún lenguaje de programación.

Compilación y ensamble: convertir a lenguaje máquina.

Prueba y depuración del programa: Meter valores ficticios para medir resultados.

Desarrollo de la documentación: Manual del sistema.

Implementación: Instalación y capacitación.

Mantenimiento: Corregir errores detectados por el usuario final.

Evolución: Agregar nuevas funcionalidades o migrarlo a un lenguaje actual.
1.6.- Paradigmas de programación:
Comprende una serie de normas que todo programador debe de seguir al momento de hacer
código, existen varios, alguno de ellos son:

Programación estructurada o imperativa: Es el que más se ha utilizado, ejemplo de ellos son:
C, BASIC o PASCAL.

Programación funcional: Se basa en la utilización de funciones aritméticas, ejemplo de ellos
son: Haskell y Lisp.

Programación lógica: Se basa en el concepto de función, ejemplo de ello es prolog.

Programación orientada a objetos: Se acerca al mundo real, ejemplo de ello son: C++, Java y
C#.
7
8

Programación orientada a aspectos: Pretende dar una determinada funcionalidad al sistema
separándola al mismo tiempo del sistema con el objeto de aumentar la modularidad, ejemplo
de este es AspectJ.
1.7 EDITORES DE TEXTO
Los editores de textos es lo más importante de un programador, ya que sin ellos no fuera posible
capturar nuestro programa. Los editores de texto están orientados a manipular y crear archivos de
texto plano, los cuales tienen una enorme utilidad dentro de la Informática, sobre todo en el área de
la programación, ya que el código fuente de los programas está hecho en texto plano, esto quiere
decir que el contenido del archivo de un editor de texto, no contienen formato de texto específico.
Los editores de texto, por lo general, son incluidos en el mismo sistema operativo y algunos son
instados por el mismo usuario, según sean sus requerimientos de edición. Algunos son libres y otros
son de pago, todo dependerá de la cantidad de funciones adicionales con las que cuente el editor,
las cuales lo convertirán en una potente herramienta de trabajo.
También, podemos crear notas importantes y realizar descripciones rápidas de cualquier proceso,
las cuales pueden ser leídas desde cualquier equipo, sin importar si cuentan o no con procesadores
de palabras.
1.8 COMPILADORES E INTÉRPRETES
¿Qué es un compilador?
Es un programa informático que revisa la sintaxis de un programa fuente en busca de errores y de
no haberlos genera un programa equivalente que la maquina pueda interpretar.
El compilador deriva su nombre de la manera en que trabaja, buscando en todo el código fuente,
recolectando y reorganizando las instrucciones. Un compilador difiere de un intérprete en que el
intérprete toma cada línea de código y la analiza y ejecuta mientras que el compilador mira el código
por completo.
Un compilador analiza el programa fuente, revisa su sintaxis en busca de errores y de no haberlos lo
traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su
acción equivale a la de un traductor humano, que toma un libro y produce otro equivalente escrito en
otra lengua
8
9
Etapas del proceso de compilación
Codificación o edición: Consiste en escribir el programa, como resultado nos da el código fuente.
Compilación: Se traduce el código fuente si no se produce ningún error se obtiene el código objeto.
Linkeado: Se une el archivo obtenido con determinadas rutinas, obteniendo el programa ejecutable.
Tipos de linkados
Linkado estático: Los binarios de las librerías se añaden a nuestros binarios, generando el archivo
ejecutable.
Linkado dinámico: No se añaden las librerías a nuestros binarios sino que cargaran en memoria las
librerías que en ese momento se necesiten.
Partes de un compilador
Front End: Es la parte que analiza el código fuente, genera el árbol de derivación y rellena los
valores de la tabla de símbolos.
Back End: Es la parte que genera el código maquina.
Tipos de compiladores
Compiladores cruzados: Generan un código distinto del que están funcionando.
Compiladores optimizadores: Realizan cambios en el código, para mejorar su eficiencia.
Compiladores de una sola pasada: Generan un código maquina a partir de una única lectura.
Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder
traducir el código maquina.
Compiladores JIT (just in time): forman parte de un intérprete y compilan partes del código.
¿Qué es un intérprete?
Es un programa capas de analizar y ejecutar otros programas, escritos en leguaje de alto nivel. Solo
analizan a medida que sea necesario y normalmente no guardan la traducción.
Analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su
acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin
producir ningún escrito permanente.
Etapas del proceso de interpretación
9
10
Traductor a representación interna: Toma como entrada el código del programa en lenguaje fuente,
lo analiza y lo transforma.
Representación interna (P/RI): Los arboles sintácticos son los más utilizados.
Tabla de símbolos: Crea una tabla con información relativa a los símbolos que aparecen.
Evaluador de representación interna: A partir de los datos anteriores y de los de entrada, se llevan a
cabo las acciones indicadas.
Tratamiento de errores: Pueden aparecer errores como desbordamiento de pila que el intérprete
debe completar.
Tipos de intérpretes
Interpretes puros: Son los que analizan y ejecutan sentencia a todo el programa fuente.
Interpretes avanzados: Incorporan un paso previo de análisis de todo el programa fuente.
Interpretes incrementales: se utilizan en sistemas interactivos donde conviven con módulos
compilados y con módulos modificables.
Evaluadores parciales: se utilizan ya que muchos programas contienen dos tipos de datos de
entrada.
1.9 Ejecutables.
En informática, un ejecutable o archivo ejecutable, es tradicionalmente un, o como se le conoce
mayormente, archivo binario cuyo contenido se interpreta por el ordenador como un programa.
Generalmente, contiene instrucciones en código máquina de un procesador en concreto, pero
también puede contener bytecode que requiera un intérprete para ejecutarlo.
Dependiendo del tipo de que se traten las instrucciones, hablaremos de ejecutables portables y no
portables. Determinar si un archivo es ejecutable es sobre todo una cuestión de convención.
En la mayoría de los sistemas modernos, un archivo ejecutable contiene mucha información que no
es parte del programa en sí: recursos como textos e imágenes, requisitos del entorno de ejecución,
información simbólica y de depuración, u otra información que ayude al sistema operativo a ejecutar
el programa.
10
11
Un ejecutable es un archivo diseñado para poder iniciar un programa. En su interior están pues las
instrucciones precisas para poder ejecutar un programa determinado o varios. En su memoria base
suelen cargarse las instrucciones básicas, y el sistema operativo carga comandos adicionales, que le
permiten realizar las tareas más simples.
El archivo ejecutable puede venir solo o bien acompañado de más archivos. El caso es que será
siempre él quien inicie la ejecución, carga y manejo de esos archivos. Un caso que merece mención
son los archivos autoejecutables, que ya incluyen en su interior las instrucciones para realizar las
labores necesarias por su cuenta. La ventaja de estos autoejecutables es que no precisan el
programa original para ejecutarse, por lo que pueden ser ejecutados en cualquier computador.
1.10 CONSOLA DE LINEA DE COMANDOS
Es el comando MS-DOS que permite por medio de la consola de línea de comandos dar las
instrucciones al sistema operativo.
Microsoft Windows, hizo implementaciones o mejorías a la consola MS-DOS creando así diversos
sistemas operativos como el Windows 2.0 que paso a ser Windows 3.0 en donde el segundo se
podía abrir varios programas desde la consola de comandos sin salir del modo gráfico y no como
pasaba con el primero que tenía problemas en la memoria debido al hilo principal del sistema
operativo.
En las siguientes versiones tuvieron más innovaciones como el servidor de red que vino desde el
Windows 95 y 98, pero casi siempre con los mismos defectos de las anteriores plataformas, sino
hasta llegar al Windows XP en donde la línea de comandos ya no era esencial para el sistema
operativo.
11
12
CONCLUSIÓN
En este trabajo aprendimos de manera generalizada en que consiste la programación, sus
conceptos básicos como lo son la clasificación de software de sistemas, el algoritmo, los lenguajes
de programación, aprendimos que es un programa, conocimos las formas y conceptos de
programación, vimos algunos paradigmas o maneras en que se puede hacer un programa, hablamos
de algunos editores de texto, así como su función y utilización, aprendimos lascaracterísticas y
funciones de los compiladores e intérpretes, entendimos la diferencia entre lenguajes que se
compilan y los que se interpretan, vimos y conocimos las particularidades de un archivo ejecutable y
finalmente conocimos la herramienta de consola y alguna de sus funciones.
12