segundo parcial_apuntes de programacion en c

Upload: mirianochoabenitez

Post on 06-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Segundo Parcial_apuntes de Programacion en c

    1/3

    Principios de programacin 2012

    1

    LENGUAJE DE PROGRAMACIN

    Un lenguaje de programacin es un idioma artificial diseado para expresarcomputaciones (Las ciencias de la computacin son aquellas que abarcan el

    estudio de las bases tericas de la informacin y la computacin, as como suaplicacin en sistemas computacionales) que pueden ser llevadas a cabo por

    mquinas como las computadoras. Pueden usarse para crear programas que

    controlen el comportamiento fsico y lgico de una mquina, para expresar

    algoritmos con precisin, o como modo de comunicacin humana. Est formado

    por un conjunto de smbolos y reglas sintcticas y semnticas que definen su

    estructura y el significado de sus elementos y expresiones. Al proceso por el cual

    se escribe, se prueba, se depura, se compila y se mantiene el cdigo fuente de un

    programa informtico se le llama programacin.

    Tambin la palabra programacin se define como el proceso de creacin de unprograma de computadora, mediante la aplicacin de procedimientos lgicos, atravs de los siguientes pasos:

    El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de

    programacin especfico (codificacin del programa). Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de

    mquina. Prueba y depuracin del programa. Desarrollo de la documentacin (manuales de usuario, tecnico y de

    mantenimiento).

    Para que la computadora entienda nuestras instrucciones debe usarse un lenguajeespecfico conocido como cdigo mquina, el cual la mquina comprendefcilmente, pero que lo hace excesivamente complicado para las personas. Dehecho slo consiste en cadenas extensas de nmeros 0 y 1.

    Para facilitar el trabajo, los primeros operadores de computadoras decidieronhacer un traductor para reemplazar los 0 y 1 por palabras o abstraccin depalabras y letras provenientes del ingls; ste se conoce como lenguajeensamblador.

    La primera programadora de computadora conocida fue Ada Lovelace, hija deAnabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemticas aAda quien, despus de conocer a Charles Babbage, tradujo y ampli unadescripcin de su mquina analtica. Incluso aunque Babbage nunca complet laconstruccin de cualquiera de sus mquinas, el trabajo que Ada realiz con stasle hizo ganarse el ttulo de primera programadora de computadoras del mundo. El

    http://es.wikipedia.org/wiki/Lengua_construidahttp://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3nhttp://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_informaci%C3%B3nhttp://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_computaci%C3%B3nhttp://es.wikipedia.org/wiki/Sistema_inform%C3%A1ticohttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Sintaxishttp://es.wikipedia.org/wiki/Sem%C3%A1nticahttp://es.wikipedia.org/wiki/Beta_testerhttp://es.wikipedia.org/wiki/Depuradorhttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/C%C3%B3digo_fuentehttp://es.wikipedia.org/wiki/Programa_inform%C3%A1ticohttp://es.wikipedia.org/wiki/Programa_inform%C3%A1ticohttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Depuraci%C3%B3n_de_programashttp://es.wikipedia.org/wiki/Lenguaje_de_m%C3%A1quinahttp://es.wikipedia.org/wiki/Sistema_binariohttp://es.wikipedia.org/wiki/Idioma_ingl%C3%A9shttp://es.wikipedia.org/wiki/Lenguaje_ensambladorhttp://es.wikipedia.org/wiki/Lenguaje_ensambladorhttp://es.wikipedia.org/wiki/Ada_Lovelacehttp://es.wikipedia.org/wiki/Lord_Byronhttp://es.wikipedia.org/wiki/Charles_Babbagehttp://es.wikipedia.org/wiki/Charles_Babbagehttp://es.wikipedia.org/wiki/Lord_Byronhttp://es.wikipedia.org/wiki/Ada_Lovelacehttp://es.wikipedia.org/wiki/Lenguaje_ensambladorhttp://es.wikipedia.org/wiki/Lenguaje_ensambladorhttp://es.wikipedia.org/wiki/Idioma_ingl%C3%A9shttp://es.wikipedia.org/wiki/Sistema_binariohttp://es.wikipedia.org/wiki/Lenguaje_de_m%C3%A1quinahttp://es.wikipedia.org/wiki/Depuraci%C3%B3n_de_programashttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Programa_inform%C3%A1ticohttp://es.wikipedia.org/wiki/Programa_inform%C3%A1ticohttp://es.wikipedia.org/wiki/C%C3%B3digo_fuentehttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/Depuradorhttp://es.wikipedia.org/wiki/Beta_testerhttp://es.wikipedia.org/wiki/Sem%C3%A1nticahttp://es.wikipedia.org/wiki/Sintaxishttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Sistema_inform%C3%A1ticohttp://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_computaci%C3%B3nhttp://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_informaci%C3%B3nhttp://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3nhttp://es.wikipedia.org/wiki/Lengua_construida
  • 8/3/2019 Segundo Parcial_apuntes de Programacion en c

    2/3

    Principios de programacin 2012

    2

    nombre del lenguaje de programacin Ada fue escogido como homenaje a estaprogramadora.

    El primer manual para el lenguaje Fortran apareci en octubre de 1956, con elprimer compilador Fortran entregado en abril de 1957. Esto era un compilador

    optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel amenos que su compilador pudiera generar cdigo cuyo desempeo fueracomparable al de un cdigo hecho a mano en lenguaje ensamblador.

    En 1960, se cre COBOL, uno de los lenguajes usados an en 2010 eninformtica de gestin.

    A medida que la complejidad de las tareas que realizaban las computadorasaumentaba, se hizo necesario disponer de un mtodo ms eficiente paraprogramarlas. Entonces, se crearon los lenguajes de alto nivel, como lo fue BASICen las versiones introducidas en los microordenadores de la dcada de 1980.

    Mientras que una tarea tan sencilla como sumar dos nmeros puede necesitarvarias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastaruna sola sentencia.

    C (lenguaje de programacin)

    C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en losLaboratorios Bell como evolucin del anterior lenguaje B, a su vez basado enBCPL.

    Al igual que B, es un lenguaje orientado a la implementacin de Sistemas

    Operativos, concretamente Unix. C es apreciado por la eficiencia del cdigo queproduce y es el lenguaje de programacin ms popular para crear software desistemas, aunque tambin se utiliza para crear aplicaciones.

    Se trata de un lenguaje dbilmente tipificado de medio nivel pero con muchascaractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes dealto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten uncontrol a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguajeque posibilitan mezclar cdigo en ensamblador con cdigo C o accederdirectamente a memoria o dispositivos perifricos.

    La estructura de los lenguajes son como sigue:

    1. Lenguaje Mquina - Las invocaciones a memoria, como los procesosaritmtico lgicos son posiciones literales de conmutadores fsicos delhardware en su representacin booleana. Estos lenguajes son literales detareas.

    2. Lenguajes de bajo nivel - Son instrucciones que ensamblan los grupos deconmutadores necesarios para expresar una mnima lgica aritmtica.

    http://es.wikipedia.org/wiki/Ada_(lenguaje_de_programaci%C3%B3n)http://es.wikipedia.org/wiki/Fortranhttp://es.wikipedia.org/wiki/1956http://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/1957http://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/1960http://es.wikipedia.org/wiki/COBOLhttp://es.wikipedia.org/wiki/Inform%C3%A1tica_de_gesti%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/BASIChttp://es.wikipedia.org/wiki/1980http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/1972http://es.wikipedia.org/wiki/Dennis_M._Ritchiehttp://es.wikipedia.org/wiki/Laboratorios_Bellhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Bhttp://es.wikipedia.org/wiki/BCPLhttp://es.wikipedia.org/wiki/Sistema_Operativohttp://es.wikipedia.org/wiki/Sistema_Operativohttp://es.wikipedia.org/wiki/Unixhttp://es.wikipedia.org/wiki/Lenguaje_de_medio_nivelhttp://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivelhttp://es.wikipedia.org/wiki/Lenguajes_de_alto_nivelhttp://es.wikipedia.org/wiki/Lenguajes_de_alto_nivelhttp://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivelhttp://es.wikipedia.org/wiki/Lenguaje_ensambladorhttp://es.wikipedia.org/wiki/Memoria_de_ordenadorhttp://es.wikipedia.org/wiki/Dispositivos_perif%C3%A9ricoshttp://es.wikipedia.org/wiki/Dispositivos_perif%C3%A9ricoshttp://es.wikipedia.org/wiki/Memoria_de_ordenadorhttp://es.wikipedia.org/wiki/Lenguaje_ensambladorhttp://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivelhttp://es.wikipedia.org/wiki/Lenguajes_de_alto_nivelhttp://es.wikipedia.org/wiki/Lenguajes_de_alto_nivelhttp://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivelhttp://es.wikipedia.org/wiki/Lenguaje_de_medio_nivelhttp://es.wikipedia.org/wiki/Unixhttp://es.wikipedia.org/wiki/Sistema_Operativohttp://es.wikipedia.org/wiki/Sistema_Operativohttp://es.wikipedia.org/wiki/BCPLhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Bhttp://es.wikipedia.org/wiki/Laboratorios_Bellhttp://es.wikipedia.org/wiki/Dennis_M._Ritchiehttp://es.wikipedia.org/wiki/1972http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/1980http://es.wikipedia.org/wiki/BASIChttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/Inform%C3%A1tica_de_gesti%C3%B3nhttp://es.wikipedia.org/wiki/COBOLhttp://es.wikipedia.org/wiki/1960http://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/1957http://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/1956http://es.wikipedia.org/wiki/Fortranhttp://es.wikipedia.org/wiki/Ada_(lenguaje_de_programaci%C3%B3n)
  • 8/3/2019 Segundo Parcial_apuntes de Programacion en c

    3/3

    Principios de programacin 2012

    3

    Estn ntimamente vinculados al hardware. Por norma general estndisponibles a nivel firmware, cmos o chip set. Estos lenguajes estnorientados a procesos. Los procesos se componen de tareas. Contienentantas instrucciones como la arquitectura del hardware as haya sidodiseada.

    Por ejemplo: La arquitectura CISC contiene muchas mas instrucciones aeste nivel, que la RISC.

    Son denominados como ensambladores de un hardware concreto.

    3. Lenguajes de medio nivel - Son aquellos que, basndose en los juegos deinstrucciones disponibles (chip set), permiten el uso de funciones a nivelaritmtico, pero a nivel lgico dependen de literales en ensamblador. Estoslenguajes estn orientados a procedimientos. Los procedimientos se componen deprocesos.

    Ejemplos: C, Basic.

    4. Lenguajes de alto nivel - Son aquellos que permiten una mxima flexibilidad alprogramador a la hora de abstraerse o de ser literal. Permiten un caminobidireccional entre el lenguaje mquina y una expresin casi oral entre la escrituradel programa y su posterior compilacin. Estos lenguajes estn orientados aobjetos. Los objetos se componen de propiedades cuya naturaleza emerge deprocedimientos.

    Ejemplos: C++, Fortran, Cobol, Lisp.

    5. Lenguajes de aplicaciones - Son aquellos que no permiten una bidireccionalidadconceptual entre el lenguaje mquina y los lenguajes de alto nivel, ni tampoco la

    literalidad a la hora de invocar conceptos lgicos. Se basan en libreras creadas enlenguajes de alto nivel. Pueden permitir la creacin de nuevas libreras, pero sonpropietarias y dependientes de las suministradas por la aplicacin. Estos lenguajesestn orientados a eventos. Los eventos acontecen cuando las propiedades de unobjeto interactan con otro.

    Ejemplos: Visual Basic para aplicaciones.

    6. Lenguajes de redes - Son aquellos que se basan en un convenio de instruccionestotalmente independientes de la mquina, y completamente dependientes de lared a la que estn orientadas. Se dividen en descriptivos (HTML, XML, VML), decliente-Servidor (Java, PHP) y de script.

    La palabra bajono implica que el lenguaje sea inferior a un lenguaje de altonivel; se refiere a la reducida abstraccin entre el lenguaje y el hardware.Por ejemplo, se utiliza este tipo de lenguajes para programar controladoresde dispositivos.

    http://es.wikipedia.org/wiki/C%2B%2Bhttp://es.wikipedia.org/wiki/Fortranhttp://es.wikipedia.org/wiki/Cobolhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/Abstracci%C3%B3n_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Controlador_de_dispositivohttp://es.wikipedia.org/wiki/Controlador_de_dispositivohttp://es.wikipedia.org/wiki/Controlador_de_dispositivohttp://es.wikipedia.org/wiki/Controlador_de_dispositivohttp://es.wikipedia.org/wiki/Abstracci%C3%B3n_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/Cobolhttp://es.wikipedia.org/wiki/Fortranhttp://es.wikipedia.org/wiki/C%2B%2B