Professional Documents
Culture Documents
Ingeniera Mecatrnica
Francisco Meda Gmez
Tarea 1
Tipos de lenguaje
Historia del lenguaje C hasta el C++
Fases del entorno del Lenguaje C
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
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. )
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.
Java, mediante una tcnica denominada subprocesamiento mltiple permite a los programadores escribir
programas con actividades en paralelo.
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.
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++.
Editor
Procesador
Compilador
Enlazador
Disco
Disco
El programa preprocesador
procesa el cdigo
Disco
Disco
Cargador
Disco
.
..
CPU
.
:
(Figura 1.1).
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,
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
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.
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.
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.