usando ansi C

Actualmente estoy cursando dos materias muy relacionadas con el uso del Lenguaje C. Una sellama Sintaxis y Semánticas de los lenguajes. Muy interesante, porque nos da una mejor perspectiva de como se diseñan e implementan los lenguajes de programación. Como caso de estudio usamos el Lenguaje de Programación C en su versión ANSI C.  Como bibliografía tenemos el libro homónimo de Kernighan y Ritchie y un libro de la cátedra acerca de Autómatas escrito por el jefe de cátedra.

La otra es Sistemas Operativos. Sistemas operativos es dura. El trabajo práctico es duro. La teoría es extensa, aunque debo considerar que a mí me gusta. Tal vez la materia no tiene tanto que ver con C en sí, pero sí con el uso de C como lenguaje para relacionarse con los servicios del Sistema. Encima el trabajo práctico consiste en una aplicación distribuida con servidores de archivos que forman una red tipo GNutella y el cliente es una aplicación de línea de comandos multi-hilos sobre Win32. Todo en ANSI C usando las bibliotecas de cada sistema operativo.

No voy a negar que es un desafío para mis compañeros y para mí, pero la verdad es que me gusta la temática.

Además estoy cursando Modelos Numéricos, pero eso es otro cantar, aunque no menos desafiante.

El tema es ansi C. C tiene más de 35 años. Yo cuento con 28. C nació como una mejora de B que era un lenguaje para implementar BCPL sobre una máquina de 8KB de memoria. Como los muchachos de Unix estaban jugados con la memoria tuvieron que ir cortándole cosas. Después Ritchie lo fue mejorando y, según él, tomó la forma actual alrededor de 1973. Es curioso como un lenguaje pensado para hacer algo como trabajar a un nivel un poco más alto que el assembler con los escasos recursos computacionales terminó siendo el lenguaje más utilizado para todo tipo de propósitos durante más de 30 años.

Leí por ahí que las dos causas que hicieron que C sea tan exitoso sean:

– el lenguaje es bastante sencillo, los tipos de datos estándar son los mismos que maneja un procesador de cualquier tipo: entero, caracteres, punto flotante y direcciones de memoria. luego no es tan difícil de implementar en cualquier hardware.

– C hace lo necesario y deja que nosotros hagamos lo que necesitamos, razón por la cuál cada uno puede usar C de la manera que necesite. Entonces sobre una herramienta tan básica se pueden construir cosas tan amplias como los programas de sistemas para manejar un sistema operativo o bien una modelo de objetos tan complejo y rico como gnome.

Yo no sé si existe tal cosa como el éxito en los lenguajes. El éxito viene porque los que lo usamos podemos resolver nuestros problemas.

Hay algo que me gusta de esas características de C y es que el lenguaje hace que convivan dos mundos en él. Por un lado el de la máquina y sus punteros y todas esas cosas. Y por otro lado el de nuestras ideas de como resolver problemas. Es como si estuviera cerca de los dos mundos de este fenómeno inconmesurable que empezó con Babbage y Ada Lovelace y que hoy nos permite tantas cosas.

Así que bueno, acá estoy de vuelta usando lenguaje C para construir autómatas por un lado y para armar un sistema distribuido multiplataforma para descarga de archivos por el otro. Y no hablo de una web😉

Al Juarismi no me olvido de vos, pero ellos empezaron con esto de llevar tu trabajo a las máquinas. Tampoco de los hindúes que nos prestaron sus númeritos de bellas curvas. ¿Notaron que el alfabeto hindú tiene caracteres de hermosas curvas? No es de extrañar que sea la misma gente que la del Kamasutra.

Gracias! Vuelvan prontos!

Etiquetas: , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: