Programador Universitario Facultad de Ciencias Exactas y Tecnología – U.N.T. Asignatura Programación I Apuntes de clase Lenguajes de programación Lenguaje de máquina, lenguajes ensambladores y lenguajes de alto nivel Los programadores escriben sus programas en distintos lenguajes de programación, algunos comprensibles en forma directa por la computadora y otros que requieren pasos intermedios de traducción. Este aspecto permite establecer la siguiente clasificación de los lenguajes: Lenguajes de máquina Lenguajes ensambladores Lenguajes de alto nivel El lenguaje natural de las computadoras es el lenguaje de máquina y es el más básico. Los lenguajes de máquina consisten en cadenas o filas de 0 y 1 que le indican a la computadora que ejecute sus operaciones básicas. Los lenguajes de máquina son definidos por el diseño del hardware. Estos son dependientes de la máquina, es decir, un lenguaje de máquina particular sólo puede ser usado en un tipo de computadora y son difíciles de interpretar por las personas. En otras palabras, el lenguaje de máquina para una Macintosh no es el mismo que para una PC, puesto que ellas tienen arquitecturas diferentes. Posteriormente se crearon los lenguajes ensambladores. Programar con cadenas de números era una tarea lenta y desagradable. Los programadores empezaron a usar abreviaturas similares al inglés para representar las operaciones elementales de la computadora, por ejemplo: LOAD, ADD, STORE. Los programadores escribían sus programas fuentes con tales comandos, pero los mismos no eran interpretados por la computadora. Los investigadores desarrollaron programas de traducción llamados ensambladores para lograr la conversión o traducción. Los lenguajes ensambladores aún son complejos y secretos, pero leer un programa escrito en código ensamblador es más rápido que leer un programa escrito en lenguaje de máquina. Estos lenguajes ensambladores ayudaron al programador, pero no le resolvieron todos sus problemas. Todavía eran necesario escribir muchas instrucciones para llevar a cabo tareas sencillas. La creciente popularidad de las computadoras se vio acompañada del desarrollo de lenguajes de alto |nivel, en los cuales se podían escribir simples enunciados para llevar a cabo tareas importantes. Los programas de traducción que convierten los programas de lenguaje de alto nivel a lenguaje máquina se llaman compiladores. Los lenguajes de alto nivel le permiten a los programadores escribir instrucciones en inglés con notaciones matemáticas. Estos lenguajes son llamados de alto nivel porque su sintaxis es más cercana al lenguaje humano. Usan palabras familiares y para expresar las operaciones de la computadora, estos lenguajes usan operadores, como los símbolos mas y menos, que son familiares a toda persona instruida. Como resultado, es más fácil leer, escribir, comprender programas escrito en código de alto nivel , a pesar que las instrucciones deban ser traducidas al lenguaje máquina antes que la computadora pueda interpretarlas y llevarlas a cabo. El lenguaje C En la década de los 90, C era el lenguaje programación por excelencia. Los programadores escribían programas en C, tanto para las PC como para los mainframes. C estaba normalizado de modo que un mismo programa podía ejecutarse en todo tipo de computadora y con cualquier sistema operativo existente. Hoy a disminuído el uso del C. Los desarrollos importantes se están haciendo en lenguajes tales como C++ o Java que fue desarrollado para Internet. A pesar ello, he considerado que es imperativo aprender a dominar C antes de aprender otros lenguajes. Se asume que el C es el lenguaje base de muchos de los lenguajes empleados hoy en día. C++ y Java están basados en C, el cual es màs fácil de aprender por las herramientos y procedimientos adicionales que incluye. María Eugenia Marquetti de Vallvé Página 1 de 2 Agosto de 2005 Programador Universitario Facultad de Ciencias Exactas y Tecnología – U.N.T. Esto constituye la razón pedagógica para que C sea el lenguaje elegido para iniciar el proceso de formación de principiantes. Dado el crecimiento desmedido de Internet, hoy en día aparecen a diario nuevos lenguajes que satisfacen los requerimientos planteados por el procesamiento de material de Internet. Las empresas buscan programadores para estos lenguaje nuevos, pero también exigen que el programador tenga fluidez y dominio del lenguaje C, porque ello le asegura que podrá dominar con rapidez estos lenguajes afines. Como dice un autor (Greg Perry) “C es fundamental...” Un poco de historia El lenguaje se creó a inicios de la década de los 70. Los autores del lenguaje son Brian Kernighan y Dennis Ritchie. El lenguaje C fue derivado del lenguaje B en los Laboratorios Bell. Posteriormente, se escribió el sistema operativo UNIX, totalmente en código C. UNIX fue el primer sistema operativo escrito totalmente en un lenguaje de alto nivel. Los anteriores estaban escritos en lenguaje ensamblador, de bajo nivel. C : lenguaje de propósito general, “ lenguaje de programación de sistemas”. C : no está especializado en ninguna área en particula El lenguaje C fue evolucionando de manera tal que está disponible en casi todas las computadoras. C es independiente del hardware. Los programas escritos en código C son fácilmente transportables hacia otras computadoras. En la década de los 80, la creciente popularidad del C trajo muchas variantes del mismo lenguaje, todas eran similares pero no eran compatibles entre ellas. Esto era un inconveniente serio para los programadores que desarrollaban sistemas que pudieran funcionar en distintas plataformas. Era necesario crear una versión estandarizada o normalizada del lenguaje. A mediados de los 80, un comité técnicos, el Comité ANSI (American National Estándar Institute) Instituto Nacional Americano de Estándares, estandariza la versión del lenguaje y surge así el estándar ANSI C. Los procesos de edición y compilación Para darle instrucciones en código C a una computadora necesitamos de un editor y un compilador. Un editor es casi como un procesador de palabras, permite ingresar el código original del programa que se llama código fuente. También permite que se lo pueda almacenar en memoria y en disco, corregirlo mediante opciones tales como mover, copiar, insertar texto, borrar. Luego habrá que usar un compilador, que será el encargado de traducir las instrucciones escritas en lenguaje C a código que pueda ser interpretado por al computadora. Estos dos elementos : editor y compilador están presentes en todos los Entornos Integrados de Desarrollo (IDE). El programador debe conocer previamente como compilar sus programas en ese entorno específico de programación, lo cual es más simple que aprender a programar en código C. Dada la situación actual del lenguaje, puede ser difícil encontrar un compilador C. En general, el compilador C está incluido en los compiladores de C++, ya que éste último está basado en C y se diferencia porque usa una técnica llamada programación orientada a objetos (OOP). Por lo tanto , un compilador como el Visual C++ o el Borland C++ reconocerá el código fuente escrito en C , bastará configurarlo de manera adecuada. Todos los programas escritos en código C se almacenan en archivos cuya extensión es C. Si usa un compilador de C++, la extensión será CPP. Solo después de escribir , compilar y corregir su programa en C podrá ejecutarlos y disponer de los resultados esperados. Antes de ser ejecutado el programa debe pasar por una última etapa que se denomina vinculación (linking). El objetivo de esta etapa es determinar las direcciones de memoria asignadas a las variables y el código, también establecer los nexos o vínculos necesarios para que el programa pueda interactuar con los módulos , que podrán ser otros programas. María Eugenia Marquetti de Vallvé Página 2 de 2 Agosto de 2005