You are on page 1of 15

LENGUAJE C

INGENIERA MECNICA

REALIZADO POR: JESS ENRIQUE DOLORES JIMNEZ

ALGORITMOS Y PROGRAMACION Subsecretaria de Educacin

Superior

Direccin General de Educacin Superior Tecnolgica


INSTITUTO TECNOLGICO DE SALINA CRUZ

LENGUAJE C

MATERIA

ALGORITMOS Y PROGRAMACIN

PRESENTA:

JESS ENRIQUE DOLORES JIMNEZ


CARRERA

INGENIERA MECNICA
SEMESTRE

GRUPO

SALINA CRUZ, OAXACA

ENERO DE 2013
1

ALGORITMOS Y PROGRAMACION

NDICE
Introduccin ETAPAS Y EVOLUCION DEL LENGUAJE C Lenguaje C Historia del lenguaje C Lenguaje de programacin Algunos lenguajes de programacin Conclusiones Referencias bibliogrficas 4 4 8 11 13 14 3

ALGORITMOS Y PROGRAMACION

INTRODUCCIN
El tema relacionado con Algoritmos y Programacin son temas muy extensos y en ocasiones se tornan un poco complejos, pero en realidad son funciones que fungimos en el entorno de nuestras vidas ya que cada estas herramientas son las ms utilizadas para crear software de programacin, y son las que se ocupan para crear las aplicaciones que conocemos hoy en da. Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos, respectivamente. El presente trabajo tiene como objetivo proporcionar en el estudiante de Ingeniera Mecnica las bases fundamentales para la introduccin a la materia Algoritmos y Programacin, desarrollando su ingenio y aprendizaje para el futuro venidero. En la redaccin de este trabajo de investigacin se recopilo informacin de diferentes fuentes del internet con el fin de que sea la base fundamental para que as, podamos aprender a resolver cuestiones no solo laborales si no sociales y con ello se est capacitado para desempearse en nuestras labores. El presente trabajo se abordan temes fundamentales de Algoritmos y Programacin que es el tema de los lenguajes de programacin como el lenguaje c, se interna acerca de su historia y como ha ido evolucionando con el tiempo. Ablando acerca del lenguaje de programacin se dio a conocer acerca de cmo es como se desarrolla y los tipos de lenguajes existentes y sus funciones. Con el fin de adquirir conocimientos en base a la carrera se elabor el presente trabajo para poder internarnos cada da ms en la materia y as enriquecer nuestros conocimientos.

ALGORITMOS Y PROGRAMACION

LENGUAJE C
C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolucin del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el lenguaje de programacin ms popular para crear software de sistemas, aunque tambin se utiliza para crear aplicaciones.

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

La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El lenguaje que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de este estndar es muy amplia por lo que, si los programas creados lo siguen, el cdigo es porttil entre plataformas y/o arquitecturas.

Historia
El nacimiento de C est estrechamente vinculado al del sistema operativo Unix. El investigador Ken Thompson, de AT&T, la compaa telefnica estadounidense, se propuso disear un nuevo sistema operativo a principios de los setenta. Disponga de un PDP-7 en el que codici una primera versin de Unix en lenguaje ensamblador. Pronto se impuso la conveniencia de desarrollar el sistema en un lenguaje de programacin de alto nivel, pero la escasa memoria del PDP-7 (8K de 18 bits) hizo que ideara el lenguaje de programacin B, una versin reducida de un lenguaje ya existente: BCPL. El lenguaje C apareci como un B mejorado, fruto de las demandas impuestas por el desarrollo de Unix. Dennis Ritchie fue el encargado del diseo del lenguaje C y de la implementacin de un compilador para el sobre un PDP-11.
4

ALGORITMOS Y PROGRAMACION C ha sufrido numerosos cambios a lo largo de su historia. La primera versin estable del lenguaje data de 1978 y se conoce como K&R C, es decir, C de Kernighan y Ritchie. Esta versin fue descrita por sus autores en la primera edicin del libro The C Programming Language (un autntico best-seller de la informtica). La adopcin de Unix como sistema operativo de referencia en las universidades en los aos 80 popularizo enormemente el Lenguaje de programacin C. No obstante, C era atractivo por s mismo y pareca satisfacer una demanda real de los programadores: disponer de un lenguaje de alto nivel con ciertas caractersticas propias de los lenguajes de bajo nivel (de ah que a veces se diga que C es un lenguaje de nivel intermedio). La experiencia con lenguajes de programacin diseados con anterioridad, como Lisp o Pascal, demuestra que cuando el uso de un lenguaje se extiende es muy probable que proliferen variedades dialectales y extensiones para aplicaciones muy concretas, lo que diculta enormemente el intercambio de programas entre diferentes grupos de programadores. Para evitar este problema se suele recurrir a la creacin de un comit de expertos que dene la versin ocial del lenguaje. El comit ANSI X3J9 (ANSI son las siglas del American National Standards Institute), creado en 1983, considera la inclusin de aquellas extensiones y mejoras que juzga de suciente inters para la comunidad de programadores. El 14 de diciembre de 1989 se acord qu era el C estndar y se publico el documento con la especicacin en la primavera de 1990. El estndar se divulgo con la segunda edicin de The C Programming Language, de Brian Kernighan y Dennis Ritchie. Un comit de la International Standards Oce (ISO) ratic el documento del comit ANSI en 1992, convirtindolo as en un estndar internacional. Durante mucho tiempo se conoci a esta versin del lenguaje como ANSI-C para distinguirla as del K&R C. Ahora se prever denominar a esta variante C89 (o C90) para distinguirla de la revisin que se publico en 1999, la que se conoce por C99 y que es la versin estndar de C que estudiaremos. C ha tenido un gran impacto en el diseo de otros muchos lenguajes. Ha sido, por ejemplo, la base para denir la sintaxis y ciertos aspectos de la semntica de lenguajes tan populares como Java y C++.

ALGORITMOS Y PROGRAMACION Qu pasos hay que dar para convertir un algoritmo en un programa? Para convertir un algoritmo en un programa, se deben llevar a cabo las siguientes fases de puesta a punto: Edicin. En esta primera fase, el programador debe convertir el algoritmo que haya diseado en instrucciones escritas en C. Para ello, se debe hacer uso de un editor de textos, con el cual se obtendr el llamado cdigo fuente del programa. El programador deber guardar dicho cdigo fuente en un archivo con extensin (.c) o (.cpp). Si un programa escrito en C se va a compilar con un compilador de C, el cdigo fuente debe ser guardado, obligatoriamente, en un archivo con extensin (.c). Ahora bien, si se utiliza un compilador de C/C++, el archivo se puede guardar con extensin (.c) o (.cpp). Preproceso. El preproceso sirve para realizar modificaciones en el cdigo fuente obtenido en la fase de edicin. Es el programador quien, mediante directivas del preprocesador, "dice" al preprocesador las modificaciones que ste debe llevar a cabo. El preprocesador es un programa caracterstico de C, es decir, en otros lenguajes de programacin no existe, y siempre se ejecuta antes de llevarse a cabo la compilacin. Esto es debido a que, es el propio compilador quien llama al preprocesador antes de realizar la compilacin. Compilacin. Una vez que el cdigo fuente ha sido preprocesado, el compilador traducir ese cdigo fuente (modificado) a cdigo mquina, tambin llamado cdigo objeto, siempre y cuando, el propio compilador no detecte ningn error en dicho cdigo fuente ya preprocesado. Como resultado de la compilacin, el compilador guardar el cdigo objeto del programa en un archivo con otra extensin, que, dependiendo del sistema operativo puede variar. Por ejemplo, en Windows, se guardar con la extensin (.obj), abreviatura de object. Enlace. (linkaje o montaje). Los programas pueden utilizar funciones de la biblioteca estndar de C, tales como scanf o printf. De cada una de ellas existe un cdigo objeto que debe ser enlazado (unido) al cdigo objeto del programa que las utilice. Esto se realiza mediante un programa llamado enlazador, montador o linkador.

ALGORITMOS Y PROGRAMACION Como resultado del enlace, el enlazador guardar, en disco, un archivo ejecutable. En Windows, dicho archivo tendr extensin (.exe), abreviatura de executable. Dicho archivo ser "el ejecutable". Adems de las funciones de la biblioteca estndar de C, el programador tambin puede utilizar funciones que hayan sido desarrolladas por l mismo. stas pueden agruparse en su propia biblioteca de funciones (no estndar). Por lo que, tambin en esta fase, el cdigo objeto de dichas funciones deber ser enlazado al cdigo objeto del programa que las utilice. Grficamente, el proceso de puesta a punto de un programa escrito en C se puede ver en la siguiente figura:

Figura Numero. 1 - Fases de la puesta a punto de un programa en lenguaje C. Finalmente, para que el cdigo ejecutable de un programa se ejecute en la computadora, es necesario que un programa del sistema operativo, llamado cargador, lo lleve a la memoria principal de la misma. A partir de ese momento, la CPU empezar a ejecutarlo.

ALGORITMOS Y PROGRAMACION

LENGUAJES DE PROGRAMACION
Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como, por ejemplo, el HTML. Segn la forma de ejecucin Lenguajes compilados Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene que traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores que pueden realizar esta operacin se llaman compiladores. stos, como los programas ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema. Los compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo binario). Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el cdigo. Lenguajes interpretados Se puede tambin utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la corrida de compilacin para utilizarlo en una corrida de produccin futura, el programador slo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuacin, un programa intrprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la mquina, convierte cada proposicin del programa fuente en
8

ALGORITMOS Y PROGRAMACION lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el cdigo objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez y traducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea ms lento en tiempo de ejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpido en tiempo de diseo (porque no se tiene que estar compilando a cada momento el cdigo completo). El intrprete elimina la necesidad de realizar una corrida de compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de produccin.

Los lenguajes ms prximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran ms cercanos a los programadores y usuarios se denominan lenguajes de alto nivel. Lenguajes de bajo nivel Son lenguajes totalmente dependientes de la mquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. Al estar prcticamente diseados a medida del hardware, aprovechan al mximo las caractersticas del mismo. Dentro de este grupo se encuentran:

El lenguaje maquina: este lenguaje ordena a la mquina las operaciones fundamentales para su funcionamiento. Consiste en la combinacin de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. Este lenguaje es mucho ms rpido que los lenguajes de alto nivel. La desventaja es que son bastantes difciles de manejar y usar, adems de tener cdigos fuente enormes donde encontrar un fallo es casi imposible. El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y nmeros llamadas mnemotcnicos. Con la aparicin de este lenguaje se crearon los programas traductores para poder pasar los
9

ALGORITMOS Y PROGRAMACION programas escritos en lenguaje ensamblador a lenguaje mquina. Como ventaja con respecto al cdigo mquina es que los cdigos fuentes eran ms cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prcticamente las mismas que las del lenguaje ensamblador, aadiendo la dificultad de tener que aprender un nuevo lenguaje difcil de probar y mantener.

Lenguajes de alto nivel Son aquellos que se encuentran ms cercanos al lenguaje natural que al lenguaje mquina. Estn dirigidos a solucionar problemas mediante el uso de EDD's. Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una mquina a otra sin ningn tipo de problema. Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que estn diseando el programa. Tan solo necesitan un traductor que entiendan el cdigo fuente como las caractersticas de la maquina. Suelen usar tipos de datos para la programacin y hay lenguajes de propsito general (cualquier tipo de aplicacin) y de propsito especifico (como FORTRAN para trabajos cientficos). Lenguajes de Medio nivel Se trata de un trmino no aceptado por todos, pero q seguramente habrs odo. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podra situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas caractersticas de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel. Generaciones La evolucin de los lenguajes de programacin se puede dividir en 5 etapas o generaciones.

Primera generacin: lenguaje maquina. Segunda generacin: se crearon los primeros lenguajes ensambladores.
10

ALGORITMOS Y PROGRAMACION

Tercera generacin: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol Cuarta generacin. Son los lenguajes capaces de generar cdigo por si solos, son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aqu tambin se encuentran los lenguajes orientados a objetos, haciendo posible la reutilizacin d partes del cdigo para otros programas. Ej. Visual, Natural Adabes Quinta generacin: aqu se encuentran los lenguajes orientados a la inteligencia artificial. Estos lenguajes todava estn poco desarrollados. Ej. LISP

ALGUNOS LENGUAJES DE PROGRAMACIN:


ABAP ABC Ada ActionScript Afnix ALGOL APL ASP ASP.NET AWK B BASIC BCPL Befunge Boo C

FORTRAN Gambas GML GRAFCET FP Haskell Icon Inform INTERCAL ISWIM J Java JavaScript Joy KWC LADDER

Parlog Perl PHP PL/1 Plankalkl PostScript PowerBuilder Prolog Python Rapid REXX RPN RPG Ruby Sail Sather
11

ALGORITMOS Y PROGRAMACION

C++ C# Caml Clipper CLIPS CLU COBOL CORAL D Delphi DIV Dylan Eiffel Erlang Ensamblador Extended ML Euphoria Fnix Flow-Matic Forth

Lexico Lingo Lisp Logo Lua MAGIC Mainsail Mesa Miranda ML Modula Modula-2 Modula-3 Natural NetREXX Oberon Object REXX Objective-C Ocaml Occam Oz Pascal

Scheme Scriptol Seed7 Self Sh Simula Smalltalk Snobol SPARK Squeak SR Standard ML TI-Basic TCL VBA Visual Basic Visual C++ Visual DialogScript Visual Foxpro Yurix ZPL

12

ALGORITMOS Y PROGRAMACION

CONCLUSIONES
Con la finalidad de absorber lo conocimientos bsicos de la materia fue redactado el presente trabajo para que as el estudiante se pueda guiar en el desarrollo de la materia. El desarrollo del trabajo antes mencionado se obtuvo un gran aprendizaje ya que adentramos en los temas de suma importancia, quedando as contestadas las preguntas e incgnitas que existieron al inicio de esta investigacin, pero dejando as el inters de conocer ms acerca del tema. Esta investigacin contiene una gran informacin acerca de la materia Algoritmos y Programacin y a su vez de la Ingeniera Mecnica, estos temas descritos aqu son de gran ayuda para el estudiante de dicha carrera y as se pueda dar una pequea pero enriquecida introduccin para su mejor educacin. Y as, fue como culmino la elaboracin de este trabajo quedando as satisfechos con los temas vistos y a su vez comprendidos.

13

ALGORITMOS Y PROGRAMACION

REFERENCIAS BIBLIOGRAFICAS (Toda la informacin recabada en este trabajo fue sacada del internet)

14

You might also like