Conceptos de Programación

Documentos relacionados
Evolución del software y su situación actual

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Módulo 1. Introducción a los lenguajes de programación

Objetivo: Contenido

1. Computadores y programación

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR

Introducción a la programación: Contenido. Introducción

LÓGICA DE PROGRAMACIÓN

Prof. María Alejandra Quintero. Informática Año

Introducción a la programación

Fundamentos de Programación. Introducción. Fundamentos de Programación. Página 01.0 de 24

INTRODUCCION A LA PROGRAMACION (C.U.) PROGRAMACION (T.I.G.)

COLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO

Conceptos básicos. IC-1800 Introducción a la programación. I semestre,

Lenguajes de Programación: Generaciones

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Conceptos básicos. IC-1800 Introducción a la programación. I semestre,

Introducción a la programación

Unidad I: Conceptos Básicos

INTRODUCCION A LA PROGRAMACION MARIA ALEJANDRA GOMEZ RAMOS LESLIE PAOLA RODRIGUEZ ROJAS FRANCIASCO PINZON SAN JOSEMARIA ESCRIVA DE BALAGUER

Lógica: Algoritmo: Archivo: Base de datos: Bit:

Lenguajes y paradigmas de programación

Metodología de Desarrollo de Programas

INICIACIÓN A LA PROGRAMACIÓN

Un. I. Introducción a la programación de sistemas

Lenguajes de Cuarta Generación

TIPOS DE SOFTWARE. A grandes rasgos, se puede decir que existen tres tipos de software:

Computadora y Sistema Operativo

Introducción a la Programación en C

Clase No. 2 Programación Básica Licenciatura en Telecomunicaciones

Concepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Tema: Introducción a la Programación Estructurada

Principios de diseño de lenguajes

Lenguajes de programación

Instituto Universitario Politécnico. Santiago Mariño. Unidad Nº I: Nociones generales de la. computación. Elaborado por: Ing. Víctor Valencia.

Dr. Carlos A. Coello Coello Departamento de Computación CINVESTAV IPN

Fundamentos de programación. Diagramas de flujo, Diagramas N-S, Pseudocódigo y Java

Capítulo 3 CICLO DE VIDA DE UN PROGRAMA. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

Augusta Ada Byron Mayor conocida como Ada Lovelace. A Ada se le atribuyó el papel de asistente/transcriptora de Babbage; sin embargo, hoy en día, es c

Tema 04: Lenguajes de programación y el lenguaje C

Capítulo 9. Introducción a los lenguajes formales. Continuar

Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3: 3 - Paradigmas de Programación

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN

Técnicas de Programación

Tema 1. Introducción y Conceptos Generales. Informática I Biblioteconomía y Documentación

Unidad I: Organización del Computador. Ing. Marglorie Colina

INICIACIÓN A LA PROGRAMACIÓN I

Lenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación

Leer el pedido. Examinar ficha del cliente. Si el cliente es solvente aceptar pedido, en caso contrario rechazar pedido.

Lenguajes de Programación

Lenguajes de Programacion

EVOLUCION DE LA COMPUTACION

Unidad 1. Resumen Teórico. Uso de las Computadoras (1) Programación. Uso de las Computadoras (3) Uso de las Computadoras (2)

Fundamentos de Programación. Sabino Miranda-Jiménez

Algoritmos y programas. Algoritmos y Estructuras de Datos I

INSTITUCIÓN EDUCATIVA SAN CRISTÓBAL

Programación de Ordenadores

ENSAMBLE Y MANTENIMIENTO DE COMPUTADORES

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia:

Tema 2 Introducción a la Programación en C.

TECNOLOGIAS DE LA INFORMACIÓN PARA LA INNOVACIÓN. Facultad de Estadística e Informática

Introducción a la programación

Esp. Alexis Olvany Torres ch. Datos de salida. Datos de salida. Datos de salida

Programación estructurada (Lenguajes de programación)

Tema 5. Soporte lógico de computadoras.

Fundamentos de Informática

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

M. Peña Guerrero 1 J. J. Negrete Redondo

Ing. Juan Carlos Sabido Alcántara Ingeniero Petrolero Facultad de Ingeniería UNAM

7/1/18. Algoritmos RESOLVIENDO PROBLEMAS. Libro en línea. Cuál es el objetivo del libro? Ing. Roberto Martínez Román -

Programación de Ordenadores. Dept. Ciencias de la Computación e I.A. Universidad de Granada

TEMA 2: LENGUAJES DE PROGRAMACIÓN.

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

Unidad 2. Introducción Lenguajes y Compiladores

Dra. Jessica Andrea Carballido

Unidad III: Introducción a la Programación

Objetos de aprendizaje: Computadora

Tema 1. Problemas, algoritmos y programas

Informática Aplicada a la Economía. Tema 1: Introducción

Organización. Organización. Llenguatges de Programació Curs Gonzalo Besuievsky IMA - UdG. Horario Miércoles de 9:30 a 13:00

Tema 2.- Caracterización de la informática La informática como disciplina científica Sub-áreas de la disciplina.

INSTITUTO TECNOLÓGICO DE TIJUANA

Programación I Otoño 2017 FCFM - BUAP

INSTITUTO TECNOLÓGICO

INSTITUTO SUPERIOR DE FORMACIÓN TÉCNICA Nº 177

PROGRAMACIÓN EN ASSEMBLER SIMULADOR MSX88

FUNCIONAMIENTO DEL ORDENADOR

Principios de Computadoras II

Administración Informática. Unidad I. Tipos de sistemas y su clasificación A) Sistemas de información.

Bloque II. Elementos del lenguaje de programación Java

José Luis Alonzo Velázquez

ALGORITMO. Podemos encontrar muchas definiciones de algoritmo en los textos de programación, todas ellas muy similares:

Análisis y Diseño de Algoritmos

Introducción a la Física Computacional PROGRAMACIÓN. Sergio Antonio Alcalá.

Lenguajes de programación Última modificación 2008/10

Evolución de la Programación Orientada a Objetos

Transcripción:

Lenguajes de Programación Unidad I Conceptos de Programación Rogelio Ferreira Escutia

Contenido 1) Introducción a la Programación 2) Lenguajes de Alto y Bajo Nivel 3) Generaciones de Lenguajes de Programación 4) Paradigmas de Programación 5) Algoritmos 6) Expresión de un Algoritmo 7) Técnicas de Descripción Formal

1) Introducción a la Programación

Conceptos Un programa computacional es un conjunto de instrucciones detalladas, paso a paso, que le indican a la computadora cómo resolver un problema o realizar una tarea (38). Un lenguaje de Programación es un sistema notacional para. describir computaciones en una forma legible tanto para la máquina como para el ser humano (45). Las instrucciones que integran un programa computacional se denominan código, debido a que anteriormente las instrucciones de programa para las computadoras de primera generación se ingresaban como códigos binarios. En la actualidad, el código de un programa contiene palabras familiares en inglés 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición,, 45) Lenguajes de Programación, Kenneth C. Louden. 4

Partes de un Programa Cada instrucción de un programa computacional está integrada por palabras clave y parámetros que se unen mediante reglas de sintaxis. Una palabra clave o comando es una palabra que tiene un significado predefinido para el compilador o intérprete, que traduce cada línea del programa a lenguaje máquina. Las palabras clave se combinan con parámetros específicos, que proporcionan instrucciones más detalladas para que las realice la computadora. Las palabras clave y los parámetros se combinan con signos de puntuación de acuerdo con una serie de reglas llamadas sintaxis. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 5

Primer Programador Se considera a Augusta Ada Byron (1815-1852) como el primer programador de la historia. Hija del poeta Lord Byron y de la matemática Annabella Milbanke Byron trabajó junto con Charles Babbage en la máquina analítica, de los cuales realizó apuntes sobre como programar dicha máquina, los cuales se conservaron y comprobaron que ella realizó los primeros programas. The TechWeb, http://www.techweb.com/encyclopedia/defineterm?term=ada&x=0&y=0 - The Ada Picture Gallery, http://www.cs.kuleuven.ac.be/~dirk/ada-belgium/pictures.html 6

Primera Computadora Colossus es la primer computadora que trabaja a nivel de 2 bits. Fue construida en Inglaterra, durante la Segunda Guerra Mundial y se encargaba de leer información que se interceptaba a los alemanes. La información se introducía por medio de tarjetas perforadas, y se que lograba leer 5000 caracteres por segundo. BBC News Technology, http://news.bbc.co.uk/1/hi/technology/3754887.stm 7

Primera Computadora Colossus lograba procesar 100 operaciones boleanas por cada una de las 5 cintas de entrada de datos. Estas operaciones eran programadas por medio de una circuiteria alambrada como la computadora ENIAC, no existía los programas almacenados como tal. BBC News Technology, http://news.bbc.co.uk/1/hi/technology/3754887.stm 8

2) Lenguajes de Alto y Bajo Nivel

Clasificación de Lenguajes Los lenguajes se clasifican de diferentes maneras. Pueden dividirse en 2 categorías principales: 1) Lenguaje de Bajo Nivel Incluyen comandos que son específicos para una familia de microprocesadores determinados. Se requiere que un programador escriba instrucciones en lenguaje de bajo nivel para ese hardware específicamente, estas dependen del tipo de procesador, registros y direcciones de memoria. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición,, The TechWeb, http://news.bbc.co.uk/1/hi/technology/3754887.stm 10

Clasificación de Lenguajes 2) Lenguaje de Alto Nivel Proporciona un nivel de abstracción que oculta el lenguaje ensamblador o de bajo nivel y proporciona palabras y gramática de comandos que son mas parecidos al lenguaje humano Lenguajes de alto nivel como Cobol, Basic, Java y C, facilitan el proceso de programación al reemplazar cadenas ininteligibles de 1 s y 0 s, o comandos de ensamblador, con comandos mas sencillos como Print y Write. Los comandos de lenguaje de alto nivel eliminan muchas líneas de código al incluir en un solo comando de alto nivel varios comandos de bajo nivel 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 11

3) Generaciones de Lenguajes de Programación

Generaciones de Lenguajes Las primeras computadoras fueron programadas sin lenguajes de programación, los técnicos sólo reconectaban los cables de los circuitos de la computadora para prepararla para varias tareas de procesamiento. La idea de almacenar programas en la memoria de la computadora abrió el camino a los lenguajes de programación que permitieron a los programadores escribir una serie de comando y cargarlos en la computadora para su ejecución. Los primeros lenguajes de programación eran primitivos, pero en el transcurso de varias décadas, evolucionaron hasta dar paso a los lenguajes de hoy en día. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 13

Primera Generación El lenguaje máquina fue el primer lenguaje disponible para programar computadoras. Un lenguaje máquina ofrece un conjunto de comandos representados como series de 1 s y 0 s, que corresponden al conjunto de instrucciones que se encuentra grabado en los circuitos de un microprocesador. Un lenguaje máquina es específico de una familia de CPU o microprocesadores. Aunque el lenguaje máquina aún funciona en las computadoras actuales, los programadores rara vez los usan para escribir programas. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 14

Segunda Generación El lenguaje ensamblador permite a los programadores emplear palabras de comando abreviadas, como LDA ( Load =cargar) en lugar de los 1 s y 0 s usados en el lenguaje máquina. Un lenguaje ensamblador se clasifica como lenguaje de bajo nivel, porque es específico de una máquina (cada comando de lenguaje ensamblador tiene una correspondencia uno a uno con una instrucción de lenguaje máquina. Un lenguaje ensamblador es útil cuando un programador quiere manipular directamente lo que sucede en el nivel del hardware. En la actualidad, los programadores usan lenguaje ensamblador para escribir software de sistema, como compiladores, sistemas operativos y controladores de dispositivos. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 15

Tercera Generación Los lenguajes de esta generación emplean palabras de comandos fáciles de recordar, como PRINT e INPUT, que toman el lugar de varias líneas de código de lenguaje ensamblador, o cadenas interminables de 0 s y 1 s de lenguaje máquina. Se creía que con estos lenguajes se eliminarían los errores de programación, y aunque los errores fueron menos frecuentes y el tiempo de desarrollo disminuyó significativamente, pero los programadores también cometían errores, por lo que era necesario seguir desarrollando nuevos lenguajes de programación. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 16

Cuarta Generación Su característica importante es que tienen mayor parecido con los lenguajes humanos o lenguajes naturales. De esta generación surge SQL y RPG-1, los cuales eliminan gran parte de la puntuación y las reglas gramaticales estrictas, que hacía complicados a los lenguajes de tercera generación. En la actualidad, los lenguajes de cuarta generación se usan en aplicaciones de base de datos. Un solo comando de SQL, reemplaza muchas líneas de código de tercera generación. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 17

Quinta Generación En 1982, un grupo de investigadores japoneses empezaron a trabajar en proyecto que denominaron de quinta generación que usaba Prolog, que es un lenguaje declarativo. Por lo tanto, algunos expertos clasificaron a Prolog y otros lenguajes declarativos como de quinta generación. Otros expertos están en desacuerdo y piensan que los lenguajes de quinta generación son los que permiten a los programadores usar herramientas gráficas o visuales para construir programas en lugar de escribir líneas de código. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 18

4) Paradigmas de Programación

Paradigmas Además de clasificarse por nivel y generación, los lenguajes de programación se clasifican por paradigma. Los programadores afrontan los problemas de diferentes maneras, por lo cual seleccionan el paradigma de programación mas adecuado. La frase Paradigma de Programación alude a la manera de cenceptualizar y estructurar las tareas que realiza una computadora. Existen numerosos paradigmas de programación y no son mutuamente excluyentes. Los lenguajes de programación se ordenan mediante los paradigmas de programación que soportan. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 20

Clasificación según los Paradigmas Paradigma Procedural Orientado a Objetos Declarativo Funcional Lenguajes BASIC, Pascal, COBOL, FORTAN, Ada Smalltalk, C++, Java Prolog LISP, Scheme, Haskell Descripción Destaca los algoritmos lineales, paso a paso, que proporcionan a la computadora las instrucciones para resolver un problema o realizar una tarea. Formula programas como una serie de objetos y métodos que interactúan para realizar una tarea específica. Se concentra en el uso de hechos y reglas para describir un problema. Destaca la evaluación de expresiones, llamadas funciones. Orientado a Eventos Visual Basic, C# Se concentra en la selección de elementos de interfaz de usuario y la definición de rutinas de manejo de eventos que se disparan con diversas actividades del ratón o del teclado. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 21

5) Algoritmos

Algoritmos Un algoritmo es un conjunto de pasos para realizar una tarea, que puede escribirse y aplicarse. Una característica importante de un algoritmo correctamente formulado es que si se siguen cuidadosamente los pasos, se tendrá la garantía de que se completará la tarea para la que se diseñó. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 23

6) Expresión de un Algoritmo

Expresión de un Algoritmo Existen varias maneras, como son lenguaje estructurado, seudocódigo, diagramas de flujo, etc. Estas herramientas no son lenguajes de programación y por lo tanto una computadora no tiene capacidad para procesarlos, su propósito es proporcionar una manera de documentar sus ideas para el diseño de programas. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 25

Lenguaje Estructurado Es un subconjunto de un lenguaje, típicamente el inglés, con una selección limitada de estructuras de frases que reflejan las actividades de procesamiento. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 26

Seudocódigo Es un sistema de notación para algoritmos que se han descrito como una mezcla de lenguaje común y su lenguaje de programación favorito. El seudocódigo esta menos formalizado que el lenguaje estructurado de modo que la estructura y la redacción dependen del usuario. Cuando se escribe seudocódigo, se permite incorporar palabras de comandos y sintaxis del lenguaje computacional que se pretende usar para el programa actual. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 27

Diagrama de Flujo Es una representación gráfica de la manera en que una computadora debe de pasar de una instrucción a la siguiente cuando realiza una tarea. 38) Nuevas Perspectivas: Conceptos de Computación, June Jamrich Parsons y Dan Oja, Thomson Editores 6 Edición 28

7) Técnicas de Descripción Formal

Técnicas de Descripción Formal Redes de Petri (RP) Representación gráfica natural de concurrencia. Definición formal. Modelo ejecutable asociado. Compatible con Análisis Automatizado. Es un grafo bipartita. Contiene plazas de entrada y arcos de salida Apuntes de la materia Lógica Computacional Dr. Juan Frausto Solís ITESM Campus Morelos 1997 30

Técnicas de Descripción Formal Componentes de las Redes de Petri Plazas representadas con círculos que pueden contener Tokens. Transiciones representadas por rectángulos. Arcos dirigidos, indicando el efecto del disparo de transiciones que afecta plazas vecinas. Apuntes de la materia Lógica Computacional Dr. Juan Frausto Solís ITESM Campus Morelos 1997 31

Técnicas de Descripción Formal Funcionamiento de la Redes de Petri La transición dispara si todas las plazas de entrada contienen al menos un token. Al disparar se quita un token de cada plaza de entrada y se agrega un token a cada plaza de salida. Una Red de Petri se ejecuta al establecer un marcado inicial y en tiempos sucesivos una o mas transiciones habilitadas se seleccionan para ser disparadas. Apuntes de la materia Lógica Computacional Dr. Juan Frausto Solís ITESM Campus Morelos 1997 32

Técnicas de Descripción Formal Apuntes de la materia Lógica Computacional Dr. Juan Frausto Solís ITESM Campus Morelos 1997 33

Técnicas de Descripción Formal Apuntes de la materia Lógica Computacional Dr. Juan Frausto Solís ITESM Campus Morelos 1997 34

Técnicas de Descripción Formal Problema de los Filósofos (ejemplo con 1) Hay 1 filósofo comiendo en la mesa. Para comer es necesario que esté pensando y estén disponibles los cubiertos(o palillos chinos). Aquí el filósofo esta pensando Simulador de Redes de Petri DNAnet (ejemplo que viene en el Software) 35

Técnicas de Descripción Formal Aquí el filósofo esta comiendo. Simulador de Redes de Petri DNAnet (ejemplo que viene en el Software) 36

Simulador de Redes de Petri Problema de los 5 Filósofos (en el Simulador DNAnet) Simulador de Redes de Petri DNAnet (ejemplo que viene en el Software) 37

Técnicas de Descripción Formal Problema de los Filósofos (ejemplo con 5) Hay 5 filósofos comiendo en la misma mesa. Para comer es necesario que cada filósofo agarre 2 tenedores. Cuando un filósofo come, no pueden comer los que se encuentran a su lado. M1.. M5 Filósofo en espera de comer C1.. C5 Tenedores E1.. E5 Filósofo comiendo t1..t5 r1..r5 transiciones Simulador de Redes de Petri DNAnet (ejemplo que viene en el Software) 38

Técnicas de Descripción Formal Filósofo 1 y 3 comiendo (E1 y E3) Filósofos 2, 4 y 5 no pueden comer. Simulador de Redes de Petri DNAnet (ejemplo que viene en el Software) 39

Simulador de Redes de Petri Simulador HPSim Simulador de Redes de Petri HPSim (ejemplo que viene en el Software) 40

Especificación de una Aplicación Cliente Servidor 41

Unidad I Conceptos de Programación

Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Correo: rogelio@itmorelia.edu.mx rogeplus@gmail.com Página Web: http://sagitario.itmorelia.edu.mx/~rogelio/ http://www.xumarhu.net/ Twitter: Facebook: http://twitter.com/rogeplus http://www.facebook.com/groups/xumarhu.net/