----------------------------------------------------------- Apendice A Historia del lenguaje pascal Hubo un tiempo en que programar en las computadoras no era tan divertido como ahora, acceder a un terminal costaba entre $100 y $80 dolares por hora, los ordenadores eran poseidos solo por empresas multinacionales, y los programadores para aquellos mastodontes eran muy escasos, de esta epoca son las historias de ciencia ficcion de robots inteligentes que se escuchaban hace algunos anios y que ahora a nadie impactan. Estoy hablando de los comienzos de los anios 70, es alli donde se crea pascal standard por un genio llamado Nicklaus Wirth, la base de la definicion de su lenguaje se mantiene hasta ahora incluso por turbo pascal con algunas modificaciones. Por motivos del poco acceso a las maquinas la interface con la maquina era extraordinariamente simple, una impresora sacaba los resultados de forma de teletipo sin ningun tipo de interaccion con el usuario, por eso en pascal standard no hay forma de conseguir una salida profesional para nuestros tiempos. Por este tiempo ya se habia desechado el lenguaje ensamblador como unica posibilidad de programacion, es mas, era el tiempo en el cual se creaban lenguajes de forma intensa, ya se habian creado el fortran, el cobol, el algol y el basic. Al final pascal fue un combinado de las capacidades de algunos de los lenguajes anteriores a el. El legado de aquella epoca son algunos terminos comunes que actualmente se aplican una y otra vez. Veamos algunos de ellos: -Algoritmo: Es una secuencia de pasos detallada que permiten desarrollar un problema. En los tiempos en que se desarrollo el concepto era importante perfeccionar el plan de desarrollo de un proyecto puesto que no habia lugar para la experimentacion amplia como existe ahora. De todos modos cualquier proyecto grande necesita un plan de desarrollo y mientras mas grande mucho mas, pero como todo en la vida el tiempo que se le dedique sera basado en la experiencia. -Assembler: En un lenguaje que es una interpretacion directa de los procesos internos de cada maquina. La conversion de assembler a codigo maquina es directa por lo cual los programas ensambladores realizan mucho menos trabajo que los compiladores, en los ultimos se deben realizar procesos aparte para lograr la conversion. -Bit: Unidad minima de informacion, es un digito binario que solo puede tener 2 estados (on/off). -Bytes: Son 8 bits y es la minima unidad direccionable, quiere decir que es lo minimo que un microprocesador 8088 puede mandar a traves de sus buses (conexiones internas). -Caracteres ascii: El American standard code for information interchange es un protocolo estandar para las comuniciones entre diversas maquinas. Consiste en asignar a cada letra un numero que lo identifica, por ejemplo la letra "A" tiene un codigo "ascii" de 65, existe otros estandares como el "ebdic" usado por "ibm" y el standard "ansi", pero de todos el mas usado es el protocolo "ascii". -Codigo fuente: Es el programa que usted escribe pero que no puede ser ejecutado hasta que se compile. En algunos lenguajes se puede ejecutar el codigo fuente directamente, pero para ello se necesita un interprete. A estos lenguajes se le llaman interpretados, pero resultan bastante lentos, un ejemplo de estos es el basic. -Codigo maquina: Son una serie de numeros binarios que es lo unico que entiende la maquina. -Codigo objeto: Es el codigo fuente que se compilo. En algunos lenguajes se genera en esta etapa un fichero .obj, el cual tiene que enlazarse (link) para poder ser convertido en un programa ejecutable (extension .exe) en turbo pascal el programa podra ser ejecutado luego de la compilacion sin necesidad del enlace (porque turbo lo hace automatico). -Diagramas de flujo: Son unos dibujos que ensenian como se ejecuta un programa. Actualmente su uso es ridiculo puesto que hacer un flujograma de un programa "normal" para nuestros dias (aproximadamente de 100,000 lineas de codigo ocupando 1 megabyte) le llevaria toda su vida, actualmente se usan solo algoritmos y estos solo cuando el problema es dificil de resolver. -Hardware: Se refiere a cosas relacionadas con el equipo fisico de una maquina. -Kilobytes: 1024 bytes. -Lenguaje estruturado: Un lenguaje que sigue las tecnicas de programacion que hacen mas facil el disenio de software, entre ellas: ocultacion de la informacion, disenio descendente, no incluir saltos en los programas etc... -Lenguaje transportable: Es aquel que ignora los detalles de cada maquina en lo que a hardware se refiere para poder ejecutar el programa en otras maquinas sin necesidad de correcciones. Turbo pascal es razonablemente transportable, mas el lenguaje "C" es el campeon de la tranportabilidad. Hay que notar que hacer un programa transportable normalmente bajara mucho la calidad del mismo. -Megabytes: 1024 kilobytes (o 1024 k). -Numeros Binarios: Es la expresion de los numeros en base 2. Es lo unico que comprende una computadora digital, 0 = apagado y 1 = prendido, al contrario de las maquinas analogicas que pueden comprender estados adicionales. -Numeros Hexadecimales: Sistema de numeros en base 16, es la representacion de numeros mas usada por los programadores en lenguaje ensamblador. -Registros del microprocesador: Consiste en lugares que tienen los procesadores para almacenar en ellos informacion temporal y entera, su acceso es ultra rapido con respecto a la memoria y muchisimo mas cuando se le compara con el acceso la disco. -Sistema operativo: Conjunto de programas que hacen todo el trabajo dificil en la utilizacion del hardware de la maquina como manejo de discos, gestion de memoria interna etc. -Software: Se refiere a lo relacionado con todo lo intangible alrededor de un maquina, como los programas que usted crea. Pasado este tiempo oscuro llegaron los ochentas y con ellos la pc salio al mercado con un procesador basado en el 8088. En 1983 Borland International saca el turbo pascal version 1.0 y sorprende a todo el mundo porque compilaba el codigo fuente a una velocidad de 50 lineas por segundo, tenia un editor incorporado y muchas facilidades de programacion pero la version de turbo pascal que marco un verdadero hito fue la 3.0. Escrita en lenguaje ensamblador el apelativo de turbo no le quedaba grande, mejoro el editor y las facilidades a los programadores. A partir de alli el desarrollo ha sido vertiginoso, la version 4 soporta unidades de compilacion independiente, la 5.5 programacion orientada a objeto y la version 6 ofrece un entorno de desarrollo profesional. .