⇐ La historia del lenguaje C⇒
El lenguaje C es fruto de un lenguaje de programación anterior, el lenguaje B, desarrollado por Ken Thompson, en los Laboratorios Bell en 1970, con la idea de recodificar el sistema operativo UNIX que, hasta esa fecha, se programaba directamente en ensamblador, con el inconveniente de estar vinculado a máquinas concretas (según el juego de instrucciones de cada máquina). Por tanto, se hacía necesario un lenguaje que permitiese al programador abstraerse de la capa hardware y conseguir una mayor portabilidad del código, algo que se realizó en B (basándose en el BCPL de Martin Richard de 1967).
Poco más tarde, también en los Laboratorios Bell, Dennis Ritchie se pone a trabajar en el diseño de un nuevo lenguaje de programación basado en el lenguaje B de Ken Thompson y al que aportó tipos y estructuras de datos que consiguiesen clarificar la programación y obtener un lenguaje mucho más eficiente, así nació el lenguaje de programación C. Ritchie diseñó, desde 1970 a 1972 junto a Brian Kernighan, un lenguaje que permitía realizar una programación estructurada en la que se podían economizar las expresiones a usar y con el que los desarrolladores podrían contar con un buen conjunto de operadores y tipos de datos para programar tanto en alto como en bajo nivel de manera simultánea. Ente sus características:
- Núcleo de lenguaje simple que incluye funciones matemáticas y de manejo de archivos proporcionadas por bibliotecas
- Lenguaje flexible que permitía programar de manera estructurada y no estructurada
- Inclusión de un sistema de tipos que impedía la realización de operaciones sin sentido
- Acceso a memoria de bajo nivel mediante el uso de punteros
- Conjunto reducido de palabras reservadas
- Paso de parámetros a funciones por valor
- Tipos de datos agregados (struct) que permitían combinar, bajo un mismo tipo, datos de tipos distintos y manejarlos como uno solo.
El lenguaje C ofrecía diversos tipos de datos: "CHAR" (carácter), "INT" (enteros), "FLOAT" (números reales en precisión simple), y "DOUBLE" (números reales en precisión doble) a los que posteriormente se añadieron los tipos "SHORT" (números enteros de tamaño menor a un INT), "LONG" (números enteros de tamaño mayor a un INT), "UNSIGNED" (Enteros sin signo), y "ENUMERACIONES" que junto a las estructuras, las uniones y las tablas y matrices componían un variado juego de tipos de datos con los que abordar múltiples problemas.
¿Y por qué trabajaron en un nuevo lenguaje de programaciòn? Realmente la motivación no está clara y se barajan dos hipótesis. Por un lado, se dice que ambos creadores querían jugar al juego Space Travel en uno de los mainframes de la compañía pero, debido a la carga de este sistema, decidieron llevarse el juego a un PDP-7 que no se utilizaba porque no tenía sistema operativo así que decidieron llevarse el del PDP-11 al PDP-7, algo que no se podía hacer al estar escrito en ensamblador. Pensando en poder llevarlo, y tener agilidad en la tarea, se cree que arrancaron el proyecto del lenguaje C.
La otra causa apunta a que se buscaba crear un sistema que automatizase el archivo de patentes de los Laboratorios Bell y, dado que la versión original de Unix se desarrolló en ensamblador, se usó C para rescribir el sistema operativo. De hecho, en 1973, C era tan potente que la mayor parte del núcleo de Unix estaba ya escrito en C.
En 1978 Kernighan y Ritchie publican la descripción del lenguaje C en el libro The C Programming Language, un libro de cabecera que describe todas las posibilidades de este nuevo lenguaje que y que aún se utiliza como manual de referencia.
El lenguaje C se hizo muy popular en los años 80 puesto que comenzó a desplazar a BASIC, los compiladores se hicieron muy populares y, además, de empezarse a usar en los IBM PC. En paralelo, Bjarne Stroustrup (que también trabajaba en los Laboratorios Bell) desarrolla C++, complementando C con clases y funciones virtuales, tipos genéricos y expresiones de ADA y un motor de objetos que permitía combinar la programación imperativa de C con la programación orientada a objetos.
En 1983, el Instituto Nacional Estadounidense de Estándares (ANSI) organizó un comité, X3j11, para establecer una especificación estándar de C que, tras un proceso largo, completó el estándar en 1989 (ANSI X3.159-1989), el C89. En 1990, la Organización Internacional para la Estandarización (ISO) tomó el C89 en el estándar ISO/IEC 9899:1990, conocido por C90. El lenguaje C permaneció estable, mientras que C++ siguió evolucionando, hasta que en 1999 volvió a revisarse con la ISO 9899:1999.
El Lenguaje C se ha utilizado mucho para para la programación en sistemas UNIX aunque también se ha utilizado en el desarrollo de sistemas operativos como Windows o GNU/Linux y en el desarrollo de aplicaciones de escritorio como GIMP. Tampoco es raro verlo en sistemas empotrados (control de procesos industriales, ascensores, sistemas de monitorización, etc) o como base de kits de desarrollo de microcontroladores (abstrayendo al usuario de la programación en ensamblador). Además, como decía al inicio, es un lenguaje muy especial dentro del mundo de la ingeniería puesto que se sigue enseñando en los primeros cursos de estos estudios y nunca ha dejado de ser utilizado.
Como funciona el lenguaje c
El lenguaje de programación C fue creado por Dennis M. Ritchie en el año 1972 en los laboratorios Bell, los cuales le pertenecían a la empresa AT&T.
Éste lenguaje está orientado al desarrollo e implementación de sistemas operativos, ya que su gran envergadura y robustez fue la que orilló a los desarrolladores a utilizarlo de dicha manera.
Aunque C es muy popular a la hora de hacer un desarrollo a nivel sistema operativo, también es utilizado en el desarrollo de aplicaciones comerciales y videojuegos.
Así es, la industria de los videojuegos demanda rapidez y, C con su bajo nivel de abstracción encaja perfecto en ese aspecto.
¿Cómo se utiliza el lenguaje C?
Para los que recién se inician en esto, para lograr hacer funcionar un programa en C, es necesario 2 cosas.
- Código fuente
- Compilador
Bien veámoslo de manera detenida.
Que es un compilador
Muchas veces, hemos escuchado el término compilador, sobre todo dentro de los campos de estudio que se especializan en la Informática, pero sabemos realmente
Hoy veremos el concepto de compilador, para qué se utilizan y cómo se clasifican estos pequeños programas, los cuales son los responsables de que existan todas las aplicaciones que utilizamos en nuestros ordenadores a diario.
Que es un interprete
Un intérprete es uno de esos conceptos de computación que hemos escuchado alguna vez. Si eres programador, de seguro sabes lo que son y los haz utilizado en más de una ocasión. En el siguiente artículo, veremos de forma sencilla el concepto de intérprete, así como las ventajas de emplearlos en el desarrollo de software.
Que es un codigo fuente
Diariamente cuando nos sentamos frente a la pantalla de nuestra computadora, la mayoría de nosotros quizás no somos conscientes de que las tareas que podemos realizar a través de los programas instalados son posibles gracias a un elemento fundamental, el cual se denomina código fuente.
Básicamente, el código fuente es el archivo o archivos con las instrucciones necesarias, realizadas en un lenguaje de programación, que sirve para compilar posteriormente un programa o programas para que puedan ser utilizados por el usuario de forma directa, tan sólo ejecutándolo.
Que es un codigo objeto
Código generado por un compilador o un ensamblador traducido por un código fuente de un programa.
Casi siempre este término se refiere al código máquina que puede ejecutarse directamente en la unidad central de proceso (CPU) del sistema, pero también puede ser código fuente de lenguaje ensamblador o una variante de código máquina.
Que es un objeto ejecutable
En programación, se llama código objeto al código que resulta de la compilación del código fuente.Puede ser en lenguaje máquina o bytecode, y puede distribuirse en varios archivos que corresponden a cada código fuente compilado.
Luego un enlazador (linker) se encarga de juntar todos los archivos de código objeto para obtener el programa ejecutable.
Código objeto: Conjunto de instrucciones y datos escritos en un lenguaje que entiende el ordenador directamente: binario o código máquina.
Provienen de la traducción de cierto código fuente, es un fragmento del programa final y es específico de la plataforma de ejecución.

No hay comentarios:
Publicar un comentario