You are on page 1of 13

Instituto de Ingeniera y Tecnologa

Ingeniera Mecatrnica
Francisco Meda Gmez

Programacin para Mecatrnica


Grupo C
Profesor:
Pedro Campos Lpez

Tarea 1
Tipos de lenguaje
Historia del lenguaje C hasta el C++
Fases del entorno del Lenguaje C

Alumno: Francisco Meda Gmez


No. De Matricula: 101787
Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

ndice

Contenido
Tarea 1 ......................................................................................................................................................................1
1 INTRODUCCIN .................................................................................................................................................3
Lenguajes mquina, lenguajes ensambladores y lenguajes de alto nivel ............................................................3
Tipos de lenguajes ................................................................................................................................................4
FORTRAN, COBOL, Pascal y Ada ...........................................................................................................................4
BASIC, Visual Basic, Visual C++, C# y .NET ............................................................................................................5
Historia de C .........................................................................................................................................................6
C++ ........................................................................................................................................................................7
Conceptos bsicos de un ambiente tpico de programacin en C .......................................................................7
Fases del entorno de C .........................................................................................................................................8
Tendencias de hardware ................................................................................................................................... 10
Conclusin: ........................................................................................................................................................ 12
Bibliografa:........................................................................................................................................................ 13

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

1 INTRODUCCIN
El comit para el estndar ANSI C fue formado en 1983 con el objetivo de crear un lenguaje uniforme a partir del
C original, desarrollado por Kernighan y Ritchie en 1972, en la ATT. Hasta entonces el estndar lo marcaba el libro
escrito en 1978 por estos dos autores (Ritchie, 1978. )

Lenguajes mquina, lenguajes ensambladores y lenguajes de alto nivel


Los programadores escriben instrucciones en diversos lenguajes de programacin, algunos de estos lenguajes
los comprende directamente la computadora, mientras que otros requieren pasos intermedios de traduccin.
En la actualidad se utilizan cientos de lenguajes de computacin, los cuales se dividen en tres tipos generales:
1. Lenguaje mquina.
2. Lenguajes ensambladores.
3. Lenguajes de alto nivel.
Cualquier computadora puede entender de manera directa su solo su propio lenguaje mquina, el lenguaje
maquina es el lenguaje natural de una computadora en particular, y est definido por el diseador del
hardware de dicha computadora. Por lo general, los lenguajes maquina consisten en cadenas de nmeros [que
finalmente se reducen a unos (1) y ceros (0)] que instruyen a las computadoras para realizar sus operaciones ms
elementales, una por una.

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

Tipos de lenguajes
FORTRAN, COBOL, Pascal y Ada
Se ha desarrollado cientos de lenguajes de programacin de alto nivel, pero solo algunos han logrado tener gran
aceptacin. En la dcada de los cincuentas, IBM corporation desarrollo FORTRAN (FORmula TRANslator,
traductor de frmulas) para que se utilizaran en aplicaciones cientficas y de ingeniera que requeran clculos
matemticos complejos. Actualmente, FORTRAN se utiliza ampliamente, en especial en aplicaciones de
ingeniera.
COBOL (COmmon Business Oriented Language, lenguaje comn orientado a los negocios) fue desarrollado en
1959 por fabricante de computadoras, el gobierno y los usuarios de computadoras en la industria. COBOL se
utiliza para aplicaciones comerciales que requieren una manipulacin precisa y eficiente de grandes cantidades
de datos. Una considerable cantidad de software de negocios se encuentra todava programada en COBOL.
Durante la dcada de los sesenta, muchas de las grandes iniciativas para desarrollo de software encontraron
severas dificultades, los itinerarios de software generalmente se retrasaban, los costos rebasaban en gran
medida los presupuestos, y los productos terminados no eran confiables. La gente comenz a darse cuente de
que el desarrollo de software era una actividad mucho ms compleja de lo que haba imaginado. Las actividades
de investigacin durante esta dcada dieron como resultado la evolucin de la programacin estructurada (un
mtodo disciplinado para escribir programas ms claros, fciles de corregir, y ms fciles de modificar).
Uno de los resultados ms tangibles de esta investigacin fue el desarrollo del lenguaje de programacin Pascal
por el profesor Niklaus Wirth, en 1971. Pascal, cuyo nombre se debe al aniversario de los setecientos aos del
nacimiento del filsofo y matemtico Blaise Pascal, fue diseado para la enseanza de la programacin
estructurada en ambientes acadmicos y, de inmediato se convirti en el lenguaje de programacin favorito en
varias universidades. Desafortunadamente, el lenguaje careca de muchas de las caractersticas necesarias para
poder utilizarlo en aplicaciones comerciales, industriales y gubernamentales, por lo que no ha sido muy aceptado
en estos ambientes.
El lenguaje de programacin Ada fue desarrollado bajo el patrocinio del departamento de defensa de los Estados
Unidos (DoD) durante la dcada de los setenta y principios de la dcada de los ochenta. Cientos de lenguajes se
utilizaron para producir los sistemas de software de comando y control masivo del departamento de defensa. El
departamento de defensa quera un lenguaje nico que pudiera cubrir la mayora de sus necesidades. El nombre
del lenguaje es en honor de Lady Ada Lovelace, hija del poeta Lord Byron. A Lady Lovelace se le atribuye el haber
escrito el primer programa para computadoras en el mundo, a principios de 1800 (para la Maquina Analtica, un
dispositivo de cmputo creado por Charles Babbage). Una de las caractersticas importantes de Ada se conoce
como multitareas; esto permite a los programadores especificar que ocurriran varias tareas en paralelo. Algunos
de los lenguajes de alto nivel ms populares que hemos explicado (incluyendo C y C++) generalmente permiten
al programador escribir programas que realizan solo una actividad a la vez.

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

Java, mediante una tcnica denominada subprocesamiento mltiple permite a los programadores escribir
programas con actividades en paralelo.

BASIC, Visual Basic, Visual C++, C# y .NET


El lenguaje de programacin BASIC (Beginners All-Purpose Symbolic Instruction Code) fue desarrollado a
mediados de la dcada de los sesenta por los profesores del Darmouth College John Kemeny y Thomas Kurtz,
como un lenguaje para escribir programas sencillos. El propsito principal de BASIC era familiarizar a los
principiantes con las tcnicas de programacin. Visual Basic fue introducido por Microsoft en 1991 para
simplificar el proceso de desarrollo de aplicaciones para Windows.
Visual Basic .NET, Visual C++ .NET y C# fueron diseados para la nueva plataforma de programacin de Microsoft
llamada .NET. Estos tres lenguajes utilizan la poderosa biblioteca de componentes reutilizables de software
llamada Framework Class Library (FCL).
De manera comparable a Java, la plataforma .NET permite la distribucin de aplicaciones basadas en la Web
hacia muchos dispositivos (incluso telfonos celulares) y computadoras de escritorio. El lenguaje de
programacin C# fue diseado de manera especfica para la plataforma .NET como el lenguaje que permitira a
los programadores migrar con facilidad hacia .NET. C++, Java y C# tienen todos sus races en el lenguaje de
programacin C.
Vivimos en un mundo de objetos. Slo mire a su alrededor. Existen automviles, aviones, gente, animales,
edificios, semforos, elevadores y otras cosas. Antes de la aparicin de los lenguajes orientados a objetos, los
lenguajes de programacin (tales como FORTRAN, Pascal, Basic y C) se basaban en acciones (verbos), en lugar de
cosas u objetos (sustantivos). Los programadores, que viven en un mundo de objetos, programan
primordialmente mediante el uso de verbos. Este cambio de paradigma complic la escritura de programas.
Ahora, con la disponibilidad de los lenguajes orientados a objetos tales como Java y C++, los programadores
siguen viviendo en un mundo orientado a objetos y pueden programar de una manera orientada a objetos. ste
es un proceso ms natural de programacin, y ha dado como resultado un mayor grado de productividad.
Un problema fundamental con la programacin por procedimientos es que las unidades de programacin no
reflejan de manera sencilla y efectiva a las entidades del mundo real; as, estas unidades no son particularmente
reutilizables. Con gran frecuencia, los programadores deben comenzar de nuevo cada nuevo proyecto y
escribir cdigo similar desde cero. Esto significa un gasto de tiempo y de dinero, ya que la gente tiene que
reinventar la rueda repetidamente. Mediante la tecnologa de objetos, las entidades de software creadas
(llamadas clases), si se disean apropiadamente, tienden a ser mucho ms reutilizables en proyectos futuros.
Con las bibliotecas de componentes reutilizables, tales como la MFC (Microsoft Foundation Classes) y las creadas
por Rogue Wave y muchas otras empresas desarrolladoras de software, se puede reducir el esfuerzo requerido
para implementar ciertas clases de sistemas (comparado con el esfuerzo que se hubiera requerido para
reinventar estas capacidades en nuevos proyectos).

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

Algunas empresas indican que la reutilizacin de software no es, de hecho, el principal beneficio que obtienen
de la programacin orientada a objetos. Ms bien, mencionan que la programacin orientada a objetos tiende a
producir software que es ms comprensible, mejor organizado y fcil de mantener, modificar y corregir. Esto
puede ser importante debido a que se estima que el 80% de los costos de software no estn asociados con los
esfuerzos originales para desarrollar software, sino que estn asociados con la continua evolucin y
mantenimiento de ese software durante su vida til.
Cualesquiera que sean los beneficios que se perciban de la programacin orientada a objetos, es claro que sta
ser la metodologa clave de la programacin en las siguientes dcadas.

Historia de C
C evolucion de dos lenguajes de programacin anteriores, BCPL y B. En 1967, Martin Richards desarroll BCPL
como un lenguaje para escribir software para sistemas operativos y compiladores. Ken Thompson, en su lenguaje
B, model muchas de las caractersticas de C, luego del desarrollo de su contraparte en BCPL y, en 1970, utiliz
B para crear las primeras versiones del sistema operativo UNIX en los laboratorios Bell, sobre una computadora
DEC PDP-7. Tanto BCPL como B eran lenguajes sin tipo (cada dato ocupaba una palabra en memoria y, por
ejemplo, el trabajo de procesar un elemento como un nmero completo o un nmero real, era responsabilidad
del programador).
El lenguaje C evolucion a partir de B; dicha evolucin estuvo a cargo de Dennis Ritchie en los laboratorios Bell
y, en 1972, se implement en una computadora DEC PDP-11. C utiliza muchos conceptos importantes de BCPL y
B cuando agrega tipos de datos y otras caractersticas. Inicialmente, C se hizo popular como lenguaje de
desarrollo para el sistema operativo UNIX. En la actualidad, la mayora de los sistemas operativos estn escritos
en C y/o C++. C se encuentra disponible para la mayora de las computadoras, y es independiente del hardware.
Con un diseo cuidadoso, es posible escribir programas en C que sean portables para la mayora de las
computadoras.
Para fines de la dcada de los setenta, C evolucion a lo que ahora se conoce como C tradicional, C clsico,
o C de Kernigham y Ritchie. La publicacin que en 1978 Prentice Hall hiciera del libro de Kernigham y Ritchie,
El lenguaje de programacin C, atrajo mucho la atencin de la gente a dicho lenguaje. Esta publicacin se
convirti en uno de los textos de computacin ms exitoso de todos los tiempos.
La amplia utilizacin de C para distintos tipos de computadoras (en ocasiones llamadas plataformas de hardware)
ocasion, por desgracia, muchas variantes. stas eran similares, pero a menudo incompatibles, lo que se volvi
un problema serio para los desarrolladores que necesitaban escribir programas que se pudieran ejecutar en
distintas plataformas. Entonces se hizo evidente la necesidad de una versin estndar de C. En 1983, se cre el
comit tcnico X3J11 bajo la supervisin del American National Standards Comittee on Computers and
Information Processing (X3), para proporcionar una definicin clara del lenguaje e independiente de la
computadora. En 1989, el estndar fue aprobado; ste estndar se actualiz en 1999.
Al documento del estndar se le conoce como INCITS/ISO/IEC 9899-1999.

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

Usted puede solicitar una copia de este documento a la American National Standards Institute (www.ansi.org)
en webstore.ansi.org/ansidocstore.

C++
C++ es un C mejorado, desarrollado por Bjarne Stroustrup en los laboratorios Bell. C++ proporciona un conjunto
de caractersticas que pulen al lenguaje C; sin embargo, lo ms importante es que proporciona capacidades
para una programacin orientada a objetos. C++ se ha convertido en el lenguaje dominante en la industria y en
las universidades.
Los objetos son, esencialmente, componentes reutilizables de software que modelan elementos reales. Una
revolucin se est gestando en la comunidad del software. Escribir software rpida, correcta y econmicamente
es an una meta escurridiza, en una poca en la que la demanda de nuevo y ms poderoso software se encuentra
a la alza.
Los desarrolladores de software estn descubriendo que utilizar una metodologa de diseo e implementacin
modular y orientada a objetos puede hacer ms productivos a los grupos de desarrollo de software, que
mediante las populares tcnicas de programacin anteriores.
Muchas personas piensan que la mejor estrategia educativa actual es dominar C, y posteriormente estudiar C++.
Por lo tanto, en los captulos 15 a 23 del presente libro, presentaremos una explicacin resumida de C++, la cual
extrajimos de nuestro libro C++ Cmo programar. Esperamos que lo encuentre valioso y que lo motive para que
al terminar este texto estudie C++.

Conceptos bsicos de un ambiente tpico de programacin en C


En general, los sistemas en C consisten en tres partes: un ambiente de desarrollo de programas, el lenguaje y la
biblioteca estndar de C. La siguiente explicacin define un ambiente tpico de desarrollo en C como el que
muestra la figura 1.1.
Los programas en C generalmente pasan a travs de seis fases para ejecutarse (figura 1.1). Estas son: edicin,
preproceso, compilacin, enlace, carga y ejecucin. Aunque ste es un texto genrico de C (escrito de manera
independiente a los detalles de un sistema operativo en particular), en esta seccin nos concentramos en un
sistema de C basado en UNIX. [Nota: Los programas de este libro se ejecutarn con poca o sin modificacin
alguna en la mayora de los sistemas comunes de C, los cuales incluyen sistemas basados en Windows de
Microsoft.] Si usted no utiliza un sistema UNIX, consulte los manuales de su sistema, o pregunte a su profesor
cmo llevar a cabo estas tareas en su ambiente.

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

Fases del entorno de C

Editor

Procesador

Compilador

Enlazador

Disco

El programa se crea con el


editor y se almacena en disco

Disco

El programa preprocesador
procesa el cdigo

Disco

El compilador crea el cdigo


objeto y lo almacena en disco

Disco

El lanzador relaciona el cdigo


objeto con las bibliotecas, crea
a.out y lo almacena en disco

Cargador

Disco

.
..

El cargador coloca el programa


en memoria

CPU

.
:

La CPU toma cada instruccin y la ejecuta,


posiblemente almacena nuevos valores de
datos mientras el programa se ejecuta

(Figura 1.1).

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

La primera fase consiste en editar un archivo. Esto se lleva a cabo mediante un programa de edicin. Dos editores
ampliamente utilizados en sistemas UNIX son vi y emacs. Los paquetes de software para ambientes integrados
de programacin C/C++, tales como C++ Builder de Borland y Visual Studio de Microsoft, contienen editores que
se encuentran integrados dentro del ambiente de programacin. Asumimos que el lector sabe cmo editar un
programa. El programador escribe un programa en C mediante un editor, hace correcciones si es necesario, y
despus almacena el programa en un dispositivo de almacenamiento secundario, como un disco. Los nombres
de programas en C deben terminar con la extensin .c.
A continuacin, el programador introduce el comando para compilar el programa. El compilador traduce el
programa en C a cdigo en lenguaje mquina (tambin conocido como cdigo objeto). En un sistema de C, se
ejecuta de manera automtica un programa preprocesador antes de que comience la fase de traduccin del
compilador. El preprocesador de C obedece ciertos comandos especiales llamados directivas del preprocesador,
las cuales indican que se deben realizar ciertas manipulaciones en el programa antes de la compilacin. Por lo
general, estas manipulaciones consisten en incluir otros archivos dentro del archivo para que sean compilados,
y en realizar distintos reemplazos de texto. En los primeros captulos explicaremos las directivas ms comunes
del preprocesador, y daremos una explicacin detallada de las caractersticas del preprocesador en el captulo
13.
El compilador invoca de manera automtica al preprocesador, antes de que el programa sea convertido a
lenguaje mquina.
La siguiente fase se denomina enlace. Por lo general, los programas en C contienen referencias a las funciones y
datos definidos en alguna parte, tales como las bibliotecas estndar o las bibliotecas privadas de grupos de
programadores que trabajan en un proyecto en particular. Por lo general, el cdigo objeto producido por el
compilador de C contiene huecos, debido a estas partes faltantes. Un enlazador enlaza el cdigo objeto con el
cdigo correspondiente a las funciones faltantes para producir una imagen ejecutable (sin piezas faltantes). En
un tpico sistema UNIX, el comando para compilar y enlazar un programa es cc. Para compilar y enlazar un
programa llamado bienvenido.c teclee:
cc bienvenido.c
en el indicador de UNIX y presione la tecla Entrar (Intro) (o de retorno). [Nota: Los comandos de UNIX son
sensibles a maysculas y minsculas, asegrese de que teclea las cs como minsculas y de que las letras del
nombre de archivo sean maysculas o minsculas, segn sea el caso.] Si la compilacin y el enlace del programa
ocurren con xito, se crea un archivo a.out. sta es una imagen ejecutable de nuestro programa bienvenido.c.
La siguiente fase se denomina carga. Antes de que el programa se pueda ejecutar, ste debe cargarse en
memoria. Esto se lleva a cabo mediante el cargador, el cual toma la imagen ejecutable del disco y la transfiere a
la memoria. Tambin se cargan los componentes adicionales de las bibliotecas compartidas que soportan el
programa.
Por ltimo, la computadora, bajo el control de la CPU, ejecuta el programa, una instruccin a la vez. Para cargar
y ejecutar el programa en un sistema UNIX, teclee a.out en el indicador de UNIX y presione Entrar. Los programas
no siempre funcionan al primer intento. Cada uno de los procedimientos puede fallar debido a distintos errores,

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

los cuales explicaremos. Por ejemplo, un programa en ejecucin podra intentar hacer una divisin entre cero
(una operacin ilegal en las computadoras, as como en la aritmtica). Esto ocasionara que la computadora
desplegara un mensaje de error. El programador volvera entonces a la fase de edicin, hara las correcciones
necesarias y procedera con las fases restantes para verificar que correcciones funcionan adecuadamente.
La mayora de los programas en C introducen y/o arrojan datos. Ciertas funciones en C toman su entrada desde
stdin (el flujo estndar de entrada) el cual es, por lo general, el teclado, pero el stdin puede conectarse a otro
dispositivo. En su mayora, los datos son arrojados hacia stdout (el flujo estndar de salida) el cual, por lo general
es el monitor, pero el stdout puede conectarse a otro dispositivo. Cuando decimos que un programa imprime un
resultado, normalmente nos referimos a que el resultado se despliega en el monitor. Los datos pueden ser
arrojados hacia otros dispositivos tales como discos e impresoras de alta velocidad. Existe tambin un flujo
estndar de errores denominado stderr. El flujo stderr (por lo general asociado con el monitor) se utiliza para
desplegar los mensajes de error. Es comn para los usuarios destinar los datos de salida normales, es decir, el
stdout, hacia un dispositivo distinto al monitor y mantener el stderr asignado al monitor, de manera que el
usuario pueda estar informado de los errores de manera inmediata.

Tendencias de hardware
La comunidad de programadores se desarrolla junto con el flujo continuo de avances dramticos en el hardware,
el software y las tecnologas de comunicacin. En general, cada ao la gente espera pagar ms por la mayora de
los servicios y productos. Lo contrario ha sido el caso en los campos de las computadoras y las comunicaciones,
especialmente con respecto a los costos de mantenimiento de estas tecnologas. Por muchas dcadas, y sin
expectativas de cambio alguno en un futuro prximo, los costos de hardware han disminuido de manera rpida,
si no es que precipitada. ste es un fenmeno de la tecnologa. Cada uno o dos aos, las capacidades de las
computadoras tienden a duplicarse mientras que los precios de las computadoras siguen cayendo. La
disminucin en picada de la relacin costo/rendimiento de los sistemas de cmputo se debe a la creciente
velocidad y capacidad de la memoria en la cual la computadora ejecuta sus programas, al aumento exponencial
en la cantidad de memoria secundaria (tal como el almacenamiento en disco) en la que tienen que almacenar
los programas y los datos durante largo tiempo, y al continuo incremento en la velocidad de proceso (la velocidad
a la cual se ejecutan los programas en las computadoras, es decir, la velocidad a la que hacen su trabajo).
En las comunicaciones ha ocurrido el mismo crecimiento, y sus costos tambin han ido en picada, especialmente
en aos recientes con la enorme demanda por ancho de banda de comunicaciones, la cual atrae una enorme
competencia. No conocemos otros campos en los que la tecnologa se mueva tan rpidamente y los costos
disminuyan de la misma forma. Cuando en las dcadas de los sesenta y setenta hizo explosin el uso de las
computadoras, se hablaba de las grandes mejoras en la productividad humana que las computadoras y las
comunicaciones traeran consigo. Sin embargo, estas mejoras no se materializaron. Las empresas gastaron
grandes sumas de dinero en computadoras, y con certeza las emplearon eficientemente, pero no vieron
realizadas sus expectativas en cuanto a la productividad. Fue la invencin de la tecnologa de microprocesadores

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

en chips y su amplia utilizacin a finales de la dcada de los setenta y en la de los ochenta, lo que sent la base
para las mejoras en la productividad actual.

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

Conclusin:
Esta informacin es un extracto obtenido del libro de Programacin C/C++ y Java, de los autores Deitel y Deitel
mismo que actualmente estamos utilizando como libro principal de texto.
En lo personal me parecido una herramienta valiosa y, til para programar en lenguaje C. Digo esto por la sencillez
con que se explica este mtodo de programacin y facilidad con que se explica cada programa elaborado a lo
largo de este libro.
El resto de los conocimientos y habilidades requeridas para llevarlo a otro nivel, nos lo dar la prctica constante
de este sistema. El mismo libro nos gua por los lenguajes ms avanzado que posteriormente podremos utilizar
Ya sea C, C++ o Java, en este caso nuestro curso est enfocado en la programacin ms bsica o sea lenguaje
C.

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015

Instituto de Ingeniera y Tecnologa


Ingeniera Mecatrnica
Francisco Meda Gmez

Bibliografa:
Deitel, H. M. (2004). Como Programar en C/C++ y Java. Mexico: Pearson Educacin.
Ritchie, B. K. (1978. ). The C Programming Language. Prenctice-Hall.

Ciudad Jurez, Chihuahua, a 25 de Enero de 2015