La humanidad ha conocido, a partir de los años cuarenta,  unas máquinas llamadas computadoras u ordenadores, que son el fruto de  la evolución tecnológica de toda una historia. La computadora se ha  definido como una máquina capaz de realizar y controlar a gran velocidad  cálculos y procesos complicados. Estas máquinas se reducen de peso y  tamaño pero crecen en capacidad y rapidez con el paso del tiempo. En la  década de los años ochenta, se instalaron en oficinas, despachos y  hogares, las grandes empresas dejaron de ser los únicos usuarios. Pero  las bases de mucho de estos inventos se remontan del pasado, en donde le  hablaremos en este trabajo de unos pocos inventos que han hecho mucho y  que a pesar de que la tecnología avanza ellos dieron el primer paso y  algunos de ellos todavía se usan.
viernes, 25 de marzo de 2011
BIBLIOGRAFIAS
http://www.portalplanetasedna.com.ar/computacion.htm
/oswaldolilly.blogcindario.com/2005/09/00708-la-pascalina.html
http://www.slideshare.net/RAFAMAFER/la-pascalina
http://www.adictosaltrabajo.com/detalle-noticia.php?noticia=71
/oswaldolilly.blogcindario.com/2005/09/00708-la-pascalina.html
http://www.slideshare.net/RAFAMAFER/la-pascalina
http://www.adictosaltrabajo.com/detalle-noticia.php?noticia=71
 B.)  Lista de los Sistemas Operativos más comunes.
 B.1)  MS-DOS:   Es el  más común y popular de todos los Sistemas Operativos para PC. La razón de su  continua popularidad se debe al aplastante volumen de software disponible y a la  base instalada de computadoras con procesador Intel.
 Cuando  Intel liberó el 80286, D OS se hizo tan popular y firme en el mercado que DOS y  las aplicaciones DOS representaron la mayoría del mercado de software para PC.  En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos  tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran  DOS tan bien como las computadoras IBM lo hacían.  
 B.2)  OS/2:   Después  de la introducción del procesador Intel 80286, IBM y Microsoft reconocieron la  necesidad de tomar ventaja de las capacidades multitarea de esta CPU. Se unieron  para desarrollar el OS/2, un moderno SO multitarea para los microprocesadores  Intel. < BR>Sin embargo, la sociedad no duró mucho. Las diferencias en opiniones  técnicas y la percepción de IBM al ver a Windows como una amenaza para el OS/2  causó una desavenencia entre las Compañías que al final las llevó a la  disolución de la sociedad.
 IBM  continuó el desarrollo y promoción del OS/2.
 Es un  sistema operativo de multitarea para un solo usuario que requiere un  microprocesador Intel 286 o mejor. Además de la multitarea, la gran ventaja de  la plataforma OS/2 es que permite manejar directamente hasta 16 MB de la RAM (  en comparación con 1 MB en el caso del MS-DOS ). Por otra parte, el OS/2 es un  entorno muy complejo que requiere hasta 4 MB de la RAM. Los usuarios del OS/2  interactuan con el sistema mediante una interfaz gráfica para usuario llamada  Administrador de presentaciones. A pesar de que el OS/2 rompe la barrera de 1 MB  del MS-DOS, le llevo tiempo volverse popular. Los vendedores de software se  muestran renuentes a destinar recursos a la creación de un software con base en  el OS/2 para un mercado dominado por el MS-DOS. Los usuarios se rehusan a  cambiar al OS/2 debido a la falta de software que funcione en la plata forma del  OS/2 y a que muchos tendrían que mejorar la configuración de su PC para que  opere con el OS/2.  
 B.3)  UNIX:   Unix es  un SO multiusuario y multitarea, que corre en diferentes computadoras, desde  supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y  estaciones de trabajo.
 Es un  sistema operativo que fue creado a principios de los setentas por los  científicos en los laboratorios Bell. Fue específicamente diseñado para proveer  una manera de manejar científica y especializadamente las aplicaciones  computacionales. Este SO se adapto a los sistemas de computo personales así que  esta aceptación reciente lo convierte en un sistema popular.
 . Unix  es más antiguo que todos los demás SO de PC y de muchas maneras sirvió como  modelo para éstos. Aun cuando es un SO extremadamente sólido y capaz, la línea  de comandos Unix, no es apta para cardiacos, debido a que ofrece demasiados  comandos.  
 B.4)  SISTEMA OPERATIVO DE MACINTOSH:   La  Macintosh es una máquina netamente gráfica. De hecho, no existe una interfaz de  línea de comando equivalente para ésta. Su estrecha integración de SO, GUI y  área de trabajo la hacen la favorita de la gente que no quiere saber nada de  interfaces de línea de comando.
 Las  capacidades gráficas de la Macintosh hicieron de esa máquina la primera  precursora en los campos gráficos computarizados como la autoedición por  computadora.
 La  familia de microcomputadoras de Apple Macintosh y su sistema operativo define  otra plataforma importante. Las PC de Macintosh, que se basan en la familia de  microprocesadores de Motorola, usan la arquitectura de Bus de 32 bits. La  plataforma para Macintosh incluye muchas capacidades sofisticadas que comprende  la multitarea, una GUI, la memoria virtual y la capacidad para emular la  plataforma MS-DOS. Las PC de Macintosh también tiene la capacidad integrada de  compartir archivos y comunicarse con o tras PC de Macintosh en una red.   
 B.5)  WINDOWS NT DE MICROSOFT:   Con  Windows NT, Microsoft ha expresado su dedicación a escribir software no sólo  para PC de escritorio sino también para poderosas estaciones de trabajo y  servidores de red y bases de datos. Microsoft Windows NT no es necesariamente un  sustituto de DOS ni una nueva versión de éste; es, en conjunto, un nuevo SO  diseñado desde sus bases para las máquinas más modernas y capaces disponibles.
 Windows  NT de Microsoft ofrece características interconstruidas que ningún otro SO para  PC ofrece, con excepción de Unix.
 Además  de las características tradicionales de estricta seguridad de sistema, red  interconstruida, servicios de comunicación y correo electrónico  interconstruidos, herramientas de administración y desarrollo de sistema y una  GUI, Windows NT puede correr directamente aplicaciones de Windows de Microsoft y  de Unix.  
 Windows  NT, al igual que el OS/2 ver 2.0 y algunas versiones de Unix, es un SO de 32  bits, que puede hacer completo uso de los procesadores de estas características.
 Además  de ser multitarea, está diseñado para tomar ventaja del multiproceso simétrico.  
A.)  Categorías de Sistemas Operativos 
 A.1)  MULTITAREA:  El término multitarea se refiere a la capacidad del SO para correr mas de un  programa al mismo tiempo. Existen dos esquemas que los programas de sistemas  operativos utilizan para desarrollar SO multitarea, el primero requiere de la  cooperación entre el SO y los programas de aplicación.
 Los  programas son escritos de tal manera que periódicamente inspeccionan con el SO  para ver si cualquier otro programa necesita a la CPU, si este es el caso,  entonces dejan el control del CPU al siguiente programa, a este método se le  llama multitarea cooperativa y es el método utilizado por el SO de las  computadoras de Machintosh y DOS corriendo Windows de Microsoft. El segundo  método es el llamada multitarea con asignación de prioridades. Con este esquema  el SO mantiene una lista de procesos (programas) que están corriendo. Cuando se  inicia cada proceso en la lista el SO le asigna una prioridad. En cualquier  momento el SO puede intervenir y modificar la prioridad de un proceso  organizando en forma efectiva la lista de prioridad, el SO también mantiene el  control de la cantidad de tiempo que utiliza con cualquier proceso antes de ir  al siguiente. Con multitarea de asignación de prioridades el SO puede sustituir  en cualquier momento el proceso que esta corriendo y reasignar el tiempo a una  tarea de mas prioridad. Unix OS-2 y Windows NT emplean este tipo de multitarea.  
 A.2)  MULTIUSUARIO:   Un SO  multiusuario permite a mas de un solo usuario accesar una computadora. Claro  que, para llevarse esto a cabo, el SO también debe ser capaz de efectuar  multitareas. Unix es el Sistema Operativo Multiusuario más utilizado. Debido a  que Unix fue originalmente diseñado para correr en una minicomputadora, era  multiusuario y multitarea desde su concepción.
  Actualmente se producen versiones de Unix para PC tales como The Santa Cruz  Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de  Unix para la Machintosh llamada: A/UX.Unix  
 Unix  proporciona tres maneras de permitir a múltiples personas utilizar la misma PC  al mismo tiempo.  
 1.)  Mediante Módems.  
  1.       Mediante conexión de terminales a través de puertos seriales  
 3.)  Mediante Redes.  
 A.3)  MULTIPROCESO:   Las  computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema  operativo multiproceso coordina las operaciones de la computadoras  multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede  estar ejecutando una instrucción, el otro procesador queda liberado para  procesar otras instrucciones simultáneamente.
 Al usar  una computadora con capacidades de multiproceso incrementamos su velocidad de  respuesta y procesos. Casi todas las computadoras que tienen capacidad de  multiproceso ofrecen una gran ventaja.  
 Los  primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como:
  ·           Multiproceso asimétrico: Una CPU principal retiene el control global de la  computadora, así como el de los otros procesadores. Esto fue un primer paso  hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU  principal podía convertirse en un cuello de botella.  
  ·           Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU  controladora única. La barrera a vencer al implementar el multiproceso simétrico  es que los SO tienen que ser rediseñados o diseñados desde el principio para  trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan  multiproceso asimétrico ya están disponibles y las extensiones simétricas se  están haciendo disponibles. Windows NT de Microsoft soporta multiproceso  simétrico.  
NTERPRETE:    Traductor de lenguajes de programación de alto nivel, los interpretes ejecutan  un programa línea por línea. El programa siempre permanece en su forma  original (programa fuente) y el interprete proporciona la traducción al momento  de ejecutar cada una de la s instrucciones. Un intérprete es un programa que  procesa los programas escritos en un lenguaje de alto nivel, sin embargo, está  diseñado de modo que no existe independencia entre la etapa de traducción y la  etapa de ejecución. Un intérprete traduce cada instrucción o sentencia del  programa escrito a un lenguaje máquina e inmediatamente se ejecuta. Encuentran  su mayor ventaja en la interacción con el usuario, al facilitar el desarrollo y  puesta a punto de programas, ya que los errores son fáciles de detectar y sobre  todo de corregir. 
  LENGUAJE  MÁQUINA:  Lenguaje original de la computadora, un programa debe estar escrito en el  lenguaje de la máquina para poder ser ejecutado. Este es generado por software y  no por el programador. El programador escribe en un lenguaje de programación, el  cual es traducido al lenguaje de máquina mediante interpretes y compiladores.
   E.)  Case:   (Computer-Aided Software Engineering o Computer- Aided Systems Engineering)  Ingeniería de Software Asistida por Computadora o Ingeniería de Sistemas  Asistida por computadora Software que se utiliza en una cualquiera o en todas  las fases del desarrollo de un sistema de información, incluyendo análisis,  diseño y programación. Por ejemplo, los diccionarios de datos y herramientas de  diagramación ayudan en las fases de análisis y diseño, mientras que los  generadores de aplicaciones aceleran la fase de programación.
 Las  herramientas CASE proporcionan métodos automáticos para diseñar y documentar las  técnicas tradicionales de programación estructurada. La meta última de CASE es  proveer un lenguaje para describir el sistema completo, que sea suficiente para  generar todos los programas necesarios. 
 Sistemas  Operativos
 Un  sistema Operativo (SO) es en sí mismo un programa de computadora. Sin embargo,  es un programa muy especial, quizá el más complejo e importante en una  computadora. El SO despierta a la computadora y hace que reconozca a la CPU, la  memoria, el tecla do, el sistema de vídeo y las unidades de disco. Además,  proporciona la facilidad para que los usuarios se comuniquen con la computadora  y sirve de plataforma a partir de la cual se corran programas de aplicación.
 Cuando  enciendes una computadora, lo primero que ésta hace es llevar a cabo un  autodiagnóstico llamado autoprueba de encendido (Power On Self Test, POST).  Durante la POST, la computadora identifica su memoria, sus discos, su teclado,  su sistema de vídeo y cualquier otro dispositivo conectado a ella. Lo siguiente  que la computadora hace es buscar un SO para arrancar (boot).  
 Una vez  que la computadora ha puesto en marcha su SO, mantiene al menos parte de éste en  su memoria en todo momento. Mientras la computadora esté encendida, el SO tiene  4 tareas principales:
  1.       Proporcionar ya sea una interfaz de línea de comando o una interfaz  gráfica al usuario, para que este último se pueda comunicar con la computadora.  Interfaz de línea de comando: tú introduces palabras y símbolos desde el teclado  de la computadora, ejemplo, el MS-DOS. Interfaz gráfica del Usuario (GUI),  seleccionas las acciones mediante el uso de un Mouse para pulsar sobre figuras  llamadas iconos o seleccionar opciones de los menús. 
  2.       Administrar los dispositivos de hardware en la computadora · Cuando  corren los programas, necesitan utilizar la memoria, el monitor, las unidades de  disco, los puertos de Entrada/Salida (impresoras, módems, etc). El SO sirve de  intermediario entre los programas y el hardware. 
  3.       Administrar y mantener los sistemas de archivo de disco · Los SO agrupan  la información dentro de compartimientos lógicos para almacenarlos en el disco.  Estos grupos de información son llamados archivos. Los archivos pueden contener  instrucciones de programas o información creada por el usuario. El SO mantiene  una lista de los archivos en un disco, y nos proporciona las herramientas  necesarias para organizar y manipular estos archivos. 
  4.       Apoyar a otros programas. Otra de las funciones importantes del SO es  proporcionar servicios a otros programas. Estos servicios son similares a  aquellos que el SO proporciona directamente a los usuarios. Por ejemplo, listar  los archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible,  etc. Cuando los programadores escriben programas de computadora, incluyen en sus  programas instrucciones que solicitan los servicios del SO. Estas instrucciones  son conocidas como "llamadas del sistema" 
 El  Kernel y el Shell.  
 Las  funciones centrales de un SO son controladas por el núcleo (kernel) mientras que  la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la  parte más importante del DOS es un programa con el nombre "COMMAND.COM" Este  programa ti ene dos partes. El kernel, que se mantiene en memoria en todo  momento, contiene el código máquina de bajo nivel para manejar la administración  de hardware para otros programas que necesitan estos servicios, y para la  segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos.
 Las  funciones de bajo nivel del SO y las funciones de interpretación de comandos  están separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero  utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede  cuando carga s Microsoft Windows, el cual toma el lugar del shell, reemplazando  la interfaz de línea de comandos con una interfaz gráfica del usuario. Existen  muchos shells diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG,  PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versión 5.0 incluyó un  Shell llamado DOS SHELL.
 El  concepto de herencia me pareció sencillo de entender una vez que capté otro  concepto de O-O-P: las clases. En O-O-P se acostumbra agrupar a los objetos en  clases. Esto es muy común en la vida diaria. Todos nosotros tendemos a  clasificar los objetos comunes por clases. Manejamos la clase mueble, la clase  mascota, la clase alimento, etc. Obviamente en el campo de la programación esta  clasificación es más estricta. ¿Cuál es el sentido de las clases?  Fundamentalmente evitar definir los objetos desde cero y facilitar su rehuso. Si  trabajamos con clases, al querer definir un nuevo objeto, partimos de alguna  clase definida anteriormente, con lo que el objeto en cuestión hereda las  características de los objetos de su clase. Imaginemos que creamos una clase  "aves" y describimos las características de las aves (plumas, pico, nacen de  huevo, etc.). Más adelante necesitamos una clase "pingüino". Como pertenece a  "aves" no requerimos volver a declarar lo descrito sino marcamos que "pingüino"  es una subclase de "aves" con lo que "pingüino" hereda todas sus  características. A continuación sólo declaramos los detalles que determinan lo  que distingue a "pingüino" de "aves". Asimismo podemos declarar "emperador" como  una subclase de "pingüino", con lo que "emperador" heredará todas las  características de las superclases "pingüino" y "aves" más las características  que nosotros declaremos en particular para "emperador". En un programa  (imaginario por supuesto) yo puedo utilizar estas clases (aves, pingüino y  emperador). El hecho de colocar a un individuo en particular en estas clases es  lo que se llama objeto y se dice que es una instancia de una clase. Así, si yo  coloco a Fredy (un pingüino emperador) en mi programa, se dice que el objeto  Fredy es una instancia de la clase emperador. Fredy aparecerá en mi programa con  todas las características (herencia) de aves, de pingüino y de emperador.
 Por otra  parte, entender el concepto de Polimorfismo implicó un buen número de horas de  indagación y búsqueda de ejemplos. Espero que éste resulte claro: supóngase que  declaramos un objeto llamado Suma. Este objeto requiere dos parámetros (o datos)  como mensaje para operar. En la programación tradicional tendríamos que definir  el tipo de datos que le enviamos, como por ejemplo dos números enteros, dos  números reales, etc. En O-O-P el tipo de dato se conoce hasta que se ejecuta el  programa.
  e.)  COMPILADOR:  Es un  programa que traduce un lenguaje de alto nivel al lenguaje máquina. Un programa  compilado indica que ha sido traducido y está listo para ser ejecutado. La  ejecución de los programas compilados es más rápida que la de los interpretados,  ya que el interprete debe traducir mientras está en la fase de ejecución (saca  todos los errores). Un compilador es un programa que traduce el programa fuente  (conjunto de instrucciones de un lenguaje de alto nivel, por ejemplo BASIC o  Pascal) a programa objeto (instrucciones en lenguaje máquina que la computadora  puede interpretar y ejecutar). Se requiere un compilador para cada lenguaje de  programación. Un compilador efectúa la traducción, no ejecuta el programa. Una  vez compilado el programa, el resultado en forma de programa objeto será  directamente ejecutable. Presentan la ventaja considerable frente a los  intérpretes de la velocidad de ejecución, por lo que su uso será mejor en  aquellos programas probados en los que no se esperan cambios y que deban  ejecutarse muchas veces. En caso de que se opte por un interpretador se debe  considerar que el intérprete resida siempre en memoria.  
  C.)  Programación Orientada a Objetos: La programación orientada a objetos no es un concepto nuevo, sus inicios y  técnicas de programación se iniciaron a principios de los 70. Se puede definir  programación orientada a objetos (OOPS) como una técnica de programación que  utiliza objetos como bloque esencial de construcción. La OOPS, es un tipo de  programación más cercana al razonamiento humano. La OOPS surge como una solución  a la programación de grandes programas, y para solventar el mantenimiento de  dichas aplicaciones, ya que en la programación estructura el más mínimo cambio  supone la modificación de muchas funciones relacionadas, en cambio con la OOPS  solo es cuestión de añadir o modificar métodos de una clase o mejor, crear una  nueva clase a partir de otra (Herencia). Dos lenguajes destacan sobre el resto  para programar de esta forma, Smalltalk y C++.  
 Concepto  de Objeto:  Desde un punto de vista general un Objeto es una estructura de datos de mayor o  menor complejidad con las funciones que procesan estos datos. Dicho de otra  forma, sería Datos más un Código que procesa estos datos. A los datos se les  denomina miembros dato y a las funciones miembro o miembro funciones. Los datos  están ocultos y sólo se puede acceder a ellos mediante las funciones miembro.  
 Clases:  Las Clases son como plantillas o modelos que describen como se construyen  ciertos tipos de Objeto. Cada vez que se construye un Objeto de una Clase, se  crea una instancia de esa Clase("instance"). Una Clase es una colección de  Objetos similares y un Objeto es una instancia de una Clase. Se puede definir  una Clase como un modelo que se utiliza para describir uno o más Objetos del  mismo tipo.  
  Herencia:  Una característica muy importante de los Objetos y las Clases es la Herencia,  una propiedad que permite construir nuevos Objetos (Clases) a partir de unos ya  existentes. Esto permite crear "Sub-Clases" denominadas Clases Derivadas que  comparten las propiedades de la Clase de la cual derivan (Clase base). Las  Clases derivadas heredan código y datos de la clase base, asimismo incorporan su  propio código y datos especiales. Se puede decir que la herencia permite definir  nuevas Clases a partir de las Clases ya existentes.  
  Polimorfismo:  En un sentido literal, Polimorfismo significa la cualidad de tener más de una  forma. En el contexto de POO, el Polimorfismo se refiere al hecho de que una  simple operación puede tener diferente comportamiento en diferentes objetos. En  otras palabras, diferentes objetos reaccionan al mismo mensaje de modo  diferente. Los primeros lenguajes de POO fueron interpretados, de forma que el  Polimorfismo se contemplaba en tiempo de ejecución. Por ejemplo, en C++, al ser  un lenguaje compilado, el Polimorfismo se admite tanto en tiempo de ejecución  como en tiempo de compilación
 Decimos  entonces que:  
 El tema  de la Programación Orientada a Objetos (Object Oriented Programming O-O-P) sigue  siendo para el que escribe un territorio inquietante, interesante y en gran  medida desconocido, como parece ser también para la gran mayoría de los que  estamos en el campo de la programación. Sin tratar de excluir a aquellos que han  afrontado este desarrollo desde el punto de vista académico y formal (maestrías  y doctorados) el tema se antoja difícil para los no iniciados. Con este breve  artículo me dirigiré en particular a la gran base de programadores prácticos que  andamos en búsqueda de mejores herramientas de desarrollo de programas, que  faciliten el trabajo de nuestros usuarios y a la vez disminuyan la gran cantidad  de considerandos que aparecen al empeñarnos en un proyecto de cómputo.
 Como  muchos de ustedes, me topé con el concepto de O-O-P como parte de esa búsqueda y  al explorarlo apareció el gusanillo de la curiosidad. A lo largo de mi actividad  como programador, y cuando se dio la necesidad, no tuve ningún problema en  convertir mis habilidades de programación en FORTRAN de IBM 1130 al BASIC de la  PDP, pues sólo era cuestión de aprender la sintaxis del lenguaje, ya que las  estrategias de programación y los algoritmos eran iguales. Posteriormente, al  manejar el PASCAL se requirió un importante esfuerzo en entender la filosofía de  las estructuras, lo cual modificaba la manera de ver (conceptualizar) a los  datos y a las partes constitutivas de un programa.
  Posteriormente aparece el QuickBasic, que adopté inmediatamente por la  familiaridad con el BASIC (ley del menor esfuerzo). Ofrecía estructuras de datos  (tipos y registros complejos), además de estructuras de instrucciones en  procedimientos y módulos; editor "inteligente" que revisa la sintaxis y  ejecución de las instrucciones mientras se edita el programa, generación de  ejecutable una vez terminado (.EXE), existencia de bibliotecas externas y enlace  con módulos objeto generados en otro lenguaje. ¿Qué más podía yo pedir?
 Pero la  necesidad de estar en la ola de moda es más fuerte que el sentido común. Las  aplicaciones en Windows siempre han despertado la envidia de los programadores,  al hacer ver sus programas pálidos e insulsos por comparación. Solución:  programar en Windows.
  Originalmente programar en Windows representaba un largo y tedioso camino para  dominar las complejas herramientas de desarrollo. Sólo recientemente han  aparecido desarrolladores de aplicaciones para Windows que le permiten al  programador pintar sus ventanas y realizar los enlaces entre los objetos con  programación tradicional, evitando en gran medida involucrarse con los conceptos  complicados de los objetos. Sin embargo no dejaron de inquietarme algunos  conceptos marcados por O-O-P, según los cuales serán los pilares del futuro de  la programación de componentes y de objetos distribuidos en redes, en donde la  actual programación cliente/servidor pareciera por comparación el FORTRAN o el  COBOL de ahora.
 Pidiendo  perdón de antemano a los puristas de las definiciones y conceptos de O-O-P,  expondré el resultado de mis propias indagaciones sobre este campo, esperando  que al paciente lector y posible programador le resulte menos complicado que a  mí asimilar los elementos básicos de O-O-P.
 Los  principales conceptos que se manejan en la Programación Orientada a Objetos son:  1. encapsulado, 2. herencia y 3. Polimorfismo.
 Según  esto, la encapsulación es la creación de módulos autosuficientes que contienen  los datos y las funciones que manipulan dichos datos. Se aplica la idea de la  caja negra y un letrero de "prohibido mirar adentro". Los objetos se comunican  entre sí intercambiando mensajes. De esta manera, para armar aplicaciones se  utilizan los objetos cuyo funcionamiento está perfectamente definido a través de  los mensajes que es capaz de recibir o mandar. Todo lo que un objeto puede hacer  está representado por su interfase de mensajes. Para crear objetos, el  programador puede recurrir a diversos lenguajes como el C++, el Smalltalk, el  Visual Objects y otros. Si se desea solamente utilizar los objetos y enlazarlos  en una aplicación por medio de la programación tradicional se puede recurrir al  Visual Basic, al CA-Realizer, al Power Builder, etc.
  LENGUAJES DE ALTO NIVEL:  
 Por el  contrario, son de uso mucho más fácil, ya que en ellos un solo comando o  instrucción puede equivaler a millares es código máquina. El programador escribe  su programa en alguno de estos lenguajes mediante secuencias de instrucciones.  Antes de ejecutar el programa la computadora lo traduce a código máquina de una  sola vez (lenguajes compiladores) o interpretándolo instrucción por instrucción  (lenguajes intérpretes). Ejemplos de lenguajes de alto nivel: Pascal, Cobol,  Basic, Fortran, C++ Un Programa de computadora, es una colección de  instrucciones que, al ser ejecutadas por el CPU de una máquina, llevan a cabo  una tarea ó función específica. Este conjunto de instrucciones que forman los  programas son almacenados en archivos denomina dos archivos ejecutables puesto  que, al teclear su nombre (o hacer clic sobre el icono que los identifica)  logras que la computadora los cargue y corra, o ejecute las instrucciones del  archivo. El contenido de un archivo ejecutable no puede ser entendido por el  usuario, ya que no está hecho para que la gente lo lea, sino para que la  computadora sea quien lo lea.  
 Los  archivos de programas ejecutables contienen el código máquina, que la CPU  identifica como sus instrucciones. Son lo que conocemos como Programas Objeto.  Dado que sería muy difícil que los programadores crearan programas directamente  en código de máquina, usan lenguajes más fáciles de leer, escribir y entender  para la gente.
 El  programador teclea instrucciones en un editor, que es un programa parecido a un  simple procesador de palabras, estas instrucciones son almacenadas en archivos  denominados programas fuentes (código fuente). Si los programadores necesitan  hacer cambios al programa posteriormente vuelven a correr el editor y cargan el  programa fuente para modificarlo.
 El  proceso de conversión de programas fuente a programas objeto se realiza mediante  un programa denominado compilador. El compilador toma un programa fuente y lo  traduce a programa objeto y almacena este último en otro archivo.  
 PROGRAMA  Fuente Consultada:
 Es el  programa escrito en alguno de los lenguajes y que no ha sido traducido al  lenguaje de la maquina, es decir el programa que no está en código de máquina y  que por lo tanto no puede ser ejecutable.  
 PROGRAMA  OBJETO:
 es aquel  programa que se encuentra en lenguaje máquina y que ya es ejecutable por esta.  
 La  cuarta Generación (1971 a  la fecha)   
- Microprocesador
- Chips de memoria.
- Microminiaturización
   Dos  mejoras en la tecnología de las computadoras marcan el inicio de la cuarta  generación: el reemplazo de las memorias con núcleos magnéticos, por las de  chips de silicio y la colocación de muchos más componentes en un Chip: producto  de la microminiaturización de los circuitos electrónicos.
Dos  mejoras en la tecnología de las computadoras marcan el inicio de la cuarta  generación: el reemplazo de las memorias con núcleos magnéticos, por las de  chips de silicio y la colocación de muchos más componentes en un Chip: producto  de la microminiaturización de los circuitos electrónicos.  
- Microprocesador
- Chips de memoria.
- Microminiaturización
 Dos  mejoras en la tecnología de las computadoras marcan el inicio de la cuarta  generación: el reemplazo de las memorias con núcleos magnéticos, por las de  chips de silicio y la colocación de muchos más componentes en un Chip: producto  de la microminiaturización de los circuitos electrónicos.
Dos  mejoras en la tecnología de las computadoras marcan el inicio de la cuarta  generación: el reemplazo de las memorias con núcleos magnéticos, por las de  chips de silicio y la colocación de muchos más componentes en un Chip: producto  de la microminiaturización de los circuitos electrónicos.   El tamaño reducido del  microprocesador de chips hizo posible la creación de las computadoras  personales. (PC)  
 Hoy en  día las tecnologías LSI (Integración a gran escala) y VLSI (integración a muy  gran escala) permiten que cientos de miles de componentes electrónicos se  almacenan en un chip. Usando VLSI, un fabricante puede hacer que una computadora  pequeña rivalice con una computadora de la primera generación que ocupara un  cuarto completo.
   Lenguajes de Programación
 a.)   Historia de los lenguajes;   Los  lenguajes de programación cierran el abismo entre las computadoras, que sólo  trabajan con números binarios, y los humanos, que preferimos utilizar palabras y  otros sistemas de numeración.
 Mediante  los programas se indica a la computadora qué tarea debe realizar y como  efectuarla, pero para ello es preciso introducir estas ordenes en un lenguaje  que el sistema pueda entender. En principio, el ordenador sólo entiende las  instrucciones en código máquina, es decir, el especifico de la computadora. Sin  embargo, a partir de éstos se elaboran los llamados lenguajes de alto y bajo  nivel.
b.) Generaciones de los lenguajes
b.) Generaciones de los lenguajes
  LENGUAJES DE BAJO NIVEL:
 Utilizan  códigos muy cercanos a los de la máquina, lo que hace posible la elaboración de  programas muy potentes y rápidos, pero son de difícil aprendizaje.  
  Tercera  Generación (1964-1971)  
Circuitos integrados
Compatibilidad con equipo mayor
Multiprogramación
Minicomputadora
Circuitos integrados
Compatibilidad con equipo mayor
Multiprogramación
Minicomputadora
 Las  computadoras de la tercera generación emergieron con el desarrollo de los  circuitos integrados (pastillas de silicio) en las cuales se colocan miles de  componentes electrónicos, en una integración en miniatura. Las computadoras  nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran  energéticamente más eficientes.
Las  computadoras de la tercera generación emergieron con el desarrollo de los  circuitos integrados (pastillas de silicio) en las cuales se colocan miles de  componentes electrónicos, en una integración en miniatura. Las computadoras  nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran  energéticamente más eficientes.   Antes  del advenimiento de los circuitos integrados, las computadoras estaban diseñadas  para aplicaciones matemáticas o de negocios, pero no para las dos cosas. Los  circuitos integrados permitieron a los fabricantes de computadoras incrementar  la flexibilidad de los programas, y estandarizar sus modelos. La IBM 360 una de  las primeras computadoras comerciales que usó circuitos integrados, podía  realizar tanto análisis numéricos como administración ó procesamiento de  archivos.  
 Los  clientes podían escalar sus sistemas 360 a modelos IBM de mayor tamaño y podían  todavía correr sus programas actuales. Las computadoras trabajaban a tal  velocidad que proporcionaban la capacidad de correr más de un programa de manera  simultánea (multiprogramación).  
 Por  ejemplo la computadora podia estar calculando la nomina y aceptando pedidos al  mismo tiempo.  
  Minicomputadoras, Con la introducción del modelo 360 IBM acaparó el 70% del  mercado, para evitar competir directamente con IBM la empresa Digital Equipment  Corporation DEC redirigió sus esfuerzos hacia computadoras pequeñas. Mucho menos  costosas de comprar y de operar que las computadoras grandes, las  minicomputadoras se desarrollaron durante la segunda generación pero alcanzaron  su mayor auge entre 1960 y 70. 
  -  Segunda Generación (1959-1964)    
Transistor
Compatibilidad limitada
Transistor
Compatibilidad limitada
 El  invento del transistor hizo posible una nueva generación de computadoras, más  rápidas, más pequeñas y con menores necesidades de ventilación. Sin embargo el  costo seguía siendo una porción significativa del presupuesto de una Compañía.  Las computadoras de la segunda generación también utilizaban redes de núcleos  magnéticos en lugar de tambores giratorios para el almacenamiento primario.  Estos núcleos contenían pequeños anillos de material magnético, enlazados entre  sí, en los cuales podían almacenarse datos e instrucciones.
El  invento del transistor hizo posible una nueva generación de computadoras, más  rápidas, más pequeñas y con menores necesidades de ventilación. Sin embargo el  costo seguía siendo una porción significativa del presupuesto de una Compañía.  Las computadoras de la segunda generación también utilizaban redes de núcleos  magnéticos en lugar de tambores giratorios para el almacenamiento primario.  Estos núcleos contenían pequeños anillos de material magnético, enlazados entre  sí, en los cuales podían almacenarse datos e instrucciones.   Los  programas de computadoras también mejoraron. El COBOL desarrollado durante la  1era generación estaba ya disponible comercialmente. Los programas escritos para  una computadora podían transferirse a otra con un mínimo esfuerzo. El escribir  un programa ya no requería entender plenamente el hardware de la computación.   
 Las computadoras de la 2da Generación eran sustancialmente más pequeñas y  rápidas que las de bulbos, y se usaban para nuevas aplicaciones, como en los  sistemas para reservación en líneas aéreas, control de tráfico aéreo y  simulaciones para uso general. Las empresas comenzaron a aplicar las  computadoras a tareas de almacenamiento de registros, como manejo de  inventarios, nómina y contabilidad.  
 La  marina de E.U. utilizó las computadoras de la Segunda Generación para crear el  primer simulador de vuelo. (Whirlwind I). HoneyWell se colocó como el primer  competidor durante la segunda generación de computadoras. Burroughs, Univac,  NCR, CDC, HoneyWell, los más grandes competidores de IBM durante los 60s se  conocieron como el grupo BUNCH (siglas).  
  Generaciones de computadoras:
Primera Generación de Computadoras (de 1951 a 1958)
Primera Generación de Computadoras (de 1951 a 1958)
 Las  computadoras de la primera Generación emplearon bulbos para procesar  información. Los operadores ingresaban los datos y programas en código especial  por medio de tarjetas perforadas. El almacenamiento interno se lograba con un  tambor que giraba rápidamente, sobre el cual un dispositivo de lectura/escritura  colocaba marcas magnéticas. Esas computadoras de bulbos eran mucho más grandes y  generaban más calor que los modelos contemporáneos. Eckert y Mauchly  contribuyeron al desarrollo de computadoras de la 1era Generación formando una  Cia. privada y construyendo UNIVAC I, que el Comité del censo utilizó para  evaluar el de 1950.   
 La IBM tenía el monopolio de los equipos de procesamiento de  datos basándose en tarjetas perforadas y estaba teniendo un gran auge en  productos como rebanadores de carne, básculas para comestibles, relojes y otros  artículos; sin embargo no había logrado el contrato para el Censo de 1950.  

 Comenzó  entonces a construir computadoras electrónicas y su primera entrada fue con la  IBM 701 en 1953. Después de un lento pero excitante comienzo la IBM 701 se  convirtió en un producto comercialmente viable. Sin embargo en 1954 fue  introducido el modelo IBM 650, el cual es la razón por la que IBM disfruta hoy  de una gran parte del mercado de las computadoras. La administración de la IBM  asumió un gran riesgo y estimó una venta de 50 computadoras. Este número era  mayor que la cantidad de computadoras instaladas en esa época en E.U. De hecho  la IBM instaló 1000 computadoras. El resto es historia. Aunque caras y de uso  limitado las computadoras fueron aceptadas rápidamente por las Compañías  privadas y de Gobierno. A la mitad de los años 50 IBM y Remington Rand se  consolidaban como líderes en la fabricación de computadoras.  
La  ENIAC, mil veces más veloz que sus predecesoras electromecánicas, irrumpió como  un importante descubrimiento en la tecnología de la computación. Pesaba 30  toneladas y ocupaba un espacio de 450 mts cuadrados, llenaba un cuarto de 6 m x  12 m y contenía 18,000 bulbos, tenía que programarse manualmente conectándola a  3 tableros que contenían más de 6000 interruptores. Ingresar un nuevo programa  era un proceso muy tedioso que requería días o incluso semanas. A diferencia de  las computadoras actuales que operan con un sistema binario (0,1) la ENIAC  operaba con uno decimal (0,1,2..9).   
   En 1945,  John von Neumann, que había trabajado con Eckert y Mauchly en la Universidad de  Pensilvania, publicó un artículo acerca del almacenamiento de programas. El  concepto de programa almacenado permitió la lectura de un programa dentro de la  memoria de la computadora, y después la ejecución de las instrucciones del mismo  sin tener que volverlas a escribir. La primera computadora en usar el citado  concepto fue la la llamada EDVAC (Eletronic Discrete-Variable Automatic  Computer, es decir computadora automática electrónica de variable discreta),  desarrollada por Von Neumann, Eckert y Mauchly.
En 1945,  John von Neumann, que había trabajado con Eckert y Mauchly en la Universidad de  Pensilvania, publicó un artículo acerca del almacenamiento de programas. El  concepto de programa almacenado permitió la lectura de un programa dentro de la  memoria de la computadora, y después la ejecución de las instrucciones del mismo  sin tener que volverlas a escribir. La primera computadora en usar el citado  concepto fue la la llamada EDVAC (Eletronic Discrete-Variable Automatic  Computer, es decir computadora automática electrónica de variable discreta),  desarrollada por Von Neumann, Eckert y Mauchly.   
 La ENIAC  requería una gran cantidad de electricidad. La leyenda cuenta que la ENIAC,  construida en la Universidad de Pensilvania, bajaba las luces de Filadelfia  siempre que se activaba. La imponente escala y las numerosas aplicaciones  generales de la ENIAC señalaron el comienzo de la primera generación de  computadoras.  
 En 1945,  John von Neumann, que había trabajado con Eckert y Mauchly en la Universidad de  Pensilvania, publicó un artículo acerca del almacenamiento de programas. El  concepto de programa almacenado permitió la lectura de un programa dentro de la  memoria de la computadora, y después la ejecución de las instrucciones del mismo  sin tener que volverlas a escribir. La primera computadora en usar el citado  concepto fue la la llamada EDVAC (Eletronic Discrete-Variable Automatic  Computer, es decir computadora automática electrónica de variable discreta),  desarrollada por Von Neumann, Eckert y Mauchly.
En 1945,  John von Neumann, que había trabajado con Eckert y Mauchly en la Universidad de  Pensilvania, publicó un artículo acerca del almacenamiento de programas. El  concepto de programa almacenado permitió la lectura de un programa dentro de la  memoria de la computadora, y después la ejecución de las instrucciones del mismo  sin tener que volverlas a escribir. La primera computadora en usar el citado  concepto fue la la llamada EDVAC (Eletronic Discrete-Variable Automatic  Computer, es decir computadora automática electrónica de variable discreta),  desarrollada por Von Neumann, Eckert y Mauchly.   Los  programas almacenados dieron a las computadoras una flexibilidad y confiabilidad  tremendas, haciéndolas más rápidas y menos sujetas a errores que los programas  mecánicos. Una computadora con capacidad de programa almacenado podría ser  utilizada para varias aplicaciones cargando y ejecutando el programa apropiado.  

 Hasta  este punto, los programas y datos podría ser ingresados en la computadora sólo  con la notación binaria, que es el único código que las computadoras  "entienden". El siguiente desarrollo importante en el diseño de las computadoras  fueron los programas intérpretes, que permitían a las personas comunicarse con  las computadoras utilizando medios distintos a los números binarios.  
 En 1952  Grace Murray Hoper una oficial de la Marina de E.U., desarrolló el primer  compilador, un programa que puede traducir enunciados parecidos al inglés en un  código binario comprensible para la maquina llamado COBOL (Common  Business-Oriented Languaje).   
 Pioneros  de la computación
  ATANASOFF Y BERRY Una antigua patente de un dispositivo que mucha gente creyó  que era la primera computadora digital electrónica, se invalidó en 1973 por  orden de un tribunal federal, y oficialmente se le dio el crédito a John V.  Atanasoff como el inventor de la computadora digital electrónica. El Dr.  Atanasoff, catedrático de la Universidad Estatal de Iowa, desarrolló la primera  computadora digital electrónica entre los años de 1937 a 1942. Llamó a su  invento la computadora Atanasoff-Berry, ó solo ABC (Atanasoff Berry Computer).  Un estudiante graduado, Clifford Berry, fue una útil ayuda en la construcción de  la computadora ABC.  
   Algunos  autores consideran que no hay una sola persona a la que se le pueda atribuir el  haber inventado la computadora, sino que fue el esfuerzo de muchas personas. Sin  embargo en el antiguo edificio de Física de la Universidad de Iowa aparece una  placa con la siguiente leyenda: "La primera computadora digital electrónica de  operación automática del mundo, fue construida en este edificio en 1939 por John  Vincent Atanasoff, matemático y físico de la Facultad de la Universidad, quien  concibió la idea, y por Clifford Edward Berry, estudiante graduado de física."  
 Mauchly  y Eckert, después de varias conversaciones con el Dr. Atanasoff, leer apuntes  que describían los principios de la computadora ABC y verla en persona, el Dr.  John W. Mauchly colaboró con J.Presper Eckert, Jr. para desarrollar una máquina  que calculara tablas de trayectoria para el ejército estadounidense. El producto  final, una computadora electrónica completamente operacional a gran escala, se  terminó en 1946 y se llamó ENIAC (Electronic Numerical Integrator And Computer),  ó Integrador numérico y calculador electrónico. La ENIAC construida para  aplicaciones de la Segunda Guerra mundial, se terminó en 30 meses por un equipo  de científicos que trabajan bajo reloj.  

 Fue el primer ordenador totalmente  electrónico, estaba compuesta por 20.000 válvulas de vacío, 70.000 resistores y  500.000 soldaduras hechas a mano. La unidad necesitaba 100 kw de electricidad
erman  Hollerit (1860-1929) La oficina de censos estadounidense no terminó el censo de  1880 sino hasta 1888. La dirección de la oficina ya había llegado a la  conclusión de que el censo de cada diez años tardaría mas que los mismo 10 años  para terminarlo. La oficina de censos comisionó al estadístico Herman Hollerit  p ara que aplicara su experiencia en tarjetas perforadas y llevara a cabo el  censo de 1890. Con el procesamiento de las tarjetas perforadas y el tabulador de  tarjetas perforadas de Hollerit, el censo se terminó en sólo 3 años y la oficina  se ahorró alrededor de $5,000,000 de dólares.
ara que aplicara su experiencia en tarjetas perforadas y llevara a cabo el  censo de 1890. Con el procesamiento de las tarjetas perforadas y el tabulador de  tarjetas perforadas de Hollerit, el censo se terminó en sólo 3 años y la oficina  se ahorró alrededor de $5,000,000 de dólares.  
     
 ara que aplicara su experiencia en tarjetas perforadas y llevara a cabo el  censo de 1890. Con el procesamiento de las tarjetas perforadas y el tabulador de  tarjetas perforadas de Hollerit, el censo se terminó en sólo 3 años y la oficina  se ahorró alrededor de $5,000,000 de dólares.
ara que aplicara su experiencia en tarjetas perforadas y llevara a cabo el  censo de 1890. Con el procesamiento de las tarjetas perforadas y el tabulador de  tarjetas perforadas de Hollerit, el censo se terminó en sólo 3 años y la oficina  se ahorró alrededor de $5,000,000 de dólares.   Así empezó el procesamiento  automatizado de datos. Hollerit no tomó la idea de las tarjetas perforadas del
  invento  de Jackard, sino de la "fotografía de perforación" Algunas líneas  ferroviarias de la época expedían boletos con descripciones físicas del  pasajero; los conductores hacían orificios en los boletos que describían  el  color de cabello, de ojos y la forma de nariz del pasajero. Eso le dio a  Hollerit la idea para hacer la fotografía perforada de cada persona que  se iba a  tabular. Hollertih fundó la Tabulating Machine Company y vendió sus  productos en  todo el mundo. La demanda de sus máquinas se extendió incluso hasta  Rusia. El  primer censo llevado a cabo en Rusia en 1897, se registró con el  Tabulador de Hollerith. En 1911, la Tabulating Machine Company, al  unirse con otras  Compañías, formó la Computing-Tabulating-Recording-Company.
 LAS  MAQUINAS ELECTROMECÁNICAS DE CONTABILIDAD  (MEC) Los resultados de las máquinas tabuladoras tenían que llevarse al  corriente por medios manuales, hasta que en 1919 la  Computing-Tabulating-Recording-Company. Anunció la aparición de la  impresora/listadora. Esta innovación revolucionó la manera en que las Compañías  efectuaban sus operaciones. Para reflejar mejor el alcance de sus intereses  comerciales, en 1924 la Compañía cambió el nombre por el de International  Bussines Machines Corporation (IBM) Durante décadas, desde mediados de los  cincuentas la tecnología de las tarjetas perforadas se perfeccionó con la  implantación de más dispositivos con capacidades más complejas. Dado que cada  tarjeta contenía en general un registro (Un nombre, dirección, etc.) el  procesamiento de la tarjeta perforada se conoció también como procesamiento de  registro unitario.

 La  familia de las máquinas electromecánicas de contabilidad (EAM) eloctromechanical  accounting machine de dispositivos de tarjeta perforada comprende: la  perforadora de tarjetas, el verificador, el reproductor, la perforación sumaria,  el intérprete, el clasificador, el cotejador, el calculador y la máquina de  contabilidad. El operador de un cuarto de máquinas en una instalación de  tarjetas perforadas tenía un trabajo que demandaba mucho esfuerzo físico.  Algunos cuartos de máquinas asemejaban la actividad de una fábrica; las tarjetas  perforadas y las salidas impresas se cambiaban de un dispositivo a otro en  carros manuales, el ruido que producía eran tan intenso como el de una planta  ensambladora de automóviles.  
 LA  PRIMERA TARJETA PERFORADA;  El telar de tejido, inventado en 1801 por el Francés Joseph-Marie Jackard  (1753-1834), usado todavía en la actualidad, se controla por medio de tarjetas  perforadas. El telar de Jackard opera de la manera siguiente: las tarjetas se  perforan estratégicamente y se acomodan en cierta secuencia para indicar un  diseño de tejido en particular. Charles Babbage quiso aplicar el concepto de las  tarjetas perforadas del telar de Jackard en su motor analítico. En 1843 Lady Ada  Augusta Lovelace sugirió la idea de que las tarjetas perforadas pudieran  adaptarse de manera que propiciaran que el motor de Babbage repitiera ciertas  operaciones. Debido a esta sugerencia algunas personas consideran a Lady  Lovelace la primera programadora.

DIFERENTES VERSIONES DE LA PASCALINA
 LA  LOCURA DE BABBAGE,  Charles Babbage (1793-1871), visionario inglés y catedrático de Cambridge,  hubiera podido acelerar el desarrollo de las computadoras si él y su mente  inventiva hubieran nacido 100 años después. Adelantó la situación del hardware  computacional al inventar la "máquina de diferencias", capaz de calcular tablas  matemáticas. En 1834, cuando trabajaba en los avances de la máquina de  diferencias Babbage concibió la idea de una "máquina analítica". En esencia,  ésta era una computadora de propósitos generales. Conforme con su diseño, la  máquina analítica de Babbage podía suma r, substraer, multiplicar y dividir en  secuencia automática a una velocidad de 60 sumas por minuto. 
 El diseño requería  miles de engranes y mecanismos que cubrirían el área de un campo de fútbol y  necesitaría accionarse por una locomotora. Los escépticos le pusieron el  sobrenombre de "la locura de Babbage". Charles Babbage trabajó en su máquina  analítica hasta su muerte. Los trazos detallados de Babbage describían las  características incorporadas ahora en la moderna computadora electrónica. Si  Babbage hubiera vivido en la era de la tecnología electrónica y las partes de  precisión, hubiera adelantado el nacimiento de la computadora electrónica por  varías décadas. Irónicamente, su obra se olvidó a tal grado, que algunos  pioneros en el desarrollo de la computadora electrónica ignoraron por completo  sus conceptos sobre memoria, impresoras, tarjetas perforadas y control de  programa secuencial.

HISTORIA DE PASCAL
La versión original de Turbo Pascal fue escrita en 1982 por un joven    danés llamado Anders Heilsberg y vendida en Europa como Kompass Pascal.    Philipe Kahn la llevo a Estados Unidos y creó la empresa Borland International    con la filosofía de venta directa del compilador a los usuarios y a un    precio módico. 
El primer compilador comercializado incorporaba un editor y un compilador integrado, lo cual supuso una novedad en el campo de los compiladores, ya que normalmente se comercializaban ambos programas por separado. Esta primera versión(1.0) estaba disponible para máquinas que corrían bajo CP/M y MS-DOS.
Posteriormente, las versiones 2.0 y 3.0 que se comercializaron en 1984 y 1985 respectivamente; incrementaron las características del compilador, permitiendo 64k para código, datos y pila. La versión 3.0 (1985) incluyó soporte de solapamientos, gráficos, rutinas de configuración de pantallas y cajas de herramientas; esta versión supuso el auge de Pascal.
En 1987 apareció la versión 4.0, que supuso la aparición del concepto de unidades. Cada unidad tenía su propio segmento de código, hasta 64k, y una vez que una unidad era compilada, otros programas o unidades podían utilizarla sin recompilación.
El resultado fue que los programas Turbo Pascal (ahora archivos .EXE en lugar de .COM) estaban limitados en tamaño solo por la memoria disponible. Con la versión 4.0 llegó el entorno integrado de desarrollo, EID (Integrated Development Environment, IDE).
La versión 5.0 llegó en 1988 y aportó esencialmente herramientas de depuración. El depurador integrador incorporado a TP 5.0 permitía seguimiento (traza) del código, establecer puntos de ruptura y observar a modificar variables, todo ello sin dejar el EID. Otras características fueron la emulación de coprocesadores matemáticos y la incorporación del Turbo Debbugger.
En el año 1989 supuso la introducción de los conceptos de programación orientada a objetos (POO), en un compilador potente y económico: La versión 5.5. El Turbo Debbugger fue mejorado para manejar objetos.
Por fin, la profesionalización de la POO llegó en 1990 con la incorporación al programa de Turbo Vision (Una librería de objetos y la nueva versión 6.0). Otras propiedades específicas son: nuevo EID con soporte ratón, ensamblador incoprporado(BASM), campos privados y métodos para objetos y compilador en la línea de órdenes con modo protegido.
En el año 1992 Borland presentó la que sería última versión de Turbo Pascal 7.0, compatible con todas la anteriores y que ha introducido mejoras significativas, tanto el entorno integrado de desarrollo como el propio lenguaje Pascal y bibliotecas en tiempo de ejecución, así como nuevas directivas y unidades.
El primer compilador comercializado incorporaba un editor y un compilador integrado, lo cual supuso una novedad en el campo de los compiladores, ya que normalmente se comercializaban ambos programas por separado. Esta primera versión(1.0) estaba disponible para máquinas que corrían bajo CP/M y MS-DOS.
Posteriormente, las versiones 2.0 y 3.0 que se comercializaron en 1984 y 1985 respectivamente; incrementaron las características del compilador, permitiendo 64k para código, datos y pila. La versión 3.0 (1985) incluyó soporte de solapamientos, gráficos, rutinas de configuración de pantallas y cajas de herramientas; esta versión supuso el auge de Pascal.
En 1987 apareció la versión 4.0, que supuso la aparición del concepto de unidades. Cada unidad tenía su propio segmento de código, hasta 64k, y una vez que una unidad era compilada, otros programas o unidades podían utilizarla sin recompilación.
El resultado fue que los programas Turbo Pascal (ahora archivos .EXE en lugar de .COM) estaban limitados en tamaño solo por la memoria disponible. Con la versión 4.0 llegó el entorno integrado de desarrollo, EID (Integrated Development Environment, IDE).
La versión 5.0 llegó en 1988 y aportó esencialmente herramientas de depuración. El depurador integrador incorporado a TP 5.0 permitía seguimiento (traza) del código, establecer puntos de ruptura y observar a modificar variables, todo ello sin dejar el EID. Otras características fueron la emulación de coprocesadores matemáticos y la incorporación del Turbo Debbugger.
En el año 1989 supuso la introducción de los conceptos de programación orientada a objetos (POO), en un compilador potente y económico: La versión 5.5. El Turbo Debbugger fue mejorado para manejar objetos.
Por fin, la profesionalización de la POO llegó en 1990 con la incorporación al programa de Turbo Vision (Una librería de objetos y la nueva versión 6.0). Otras propiedades específicas son: nuevo EID con soporte ratón, ensamblador incoprporado(BASM), campos privados y métodos para objetos y compilador en la línea de órdenes con modo protegido.
En el año 1992 Borland presentó la que sería última versión de Turbo Pascal 7.0, compatible con todas la anteriores y que ha introducido mejoras significativas, tanto el entorno integrado de desarrollo como el propio lenguaje Pascal y bibliotecas en tiempo de ejecución, así como nuevas directivas y unidades.
PASCAL
INTRODUCCION
Deducimos que Blaise Pascal fue un genio precoz cuando reflexionamos que a los 19 años —para ser exactos, en 1642— construyó la Pascalina.
La Pascalina fue la primera máquina sumadora mecánica del mundo (o por lo menos, del mundo documentado) que se conoce, y Pascal la fabricó con la intención de ayudar a su padre, quien era un alto funcionario de las finanzas francesas, en los avatares matemáticos de su profesión.
Esta genial maquinucha, que de tan sólo pensar en su concepción se siente uno hondamente impresionado, estaba basada, sin embargo, en un antiguo diseño inventado por los griegos para calcular las distancias que recorrían los carruajes. Como se vé, todo es sistémico.
Pero lo que nos debe causar más asombro todavía es que el principio básico de esta máquina calculadora, conocida como la Pascalina, se use todavía como fundamento en nuestros días en algunos pluviómetros y cuentakilómetros.
El mecanismo era operado por una serie de discos asociados a ruedas que llevaban marcados los números, del cero al nueve, en sus circunferencias.
Cuando una rueda daba una vuelta completa, avanzaaba la otra rueda situada a su izquierda. Naturalmente, había unos indicadores sobre los anteriores discos, que eran los encargados de dar la respuesta buscada.
En conjunto, el engranaje proporcionaba un mecanismo de respuesta idéntico al resultado que se puede obtener empleando la aritmética.
No obstante, la Pascalina tenía varios inconvenientes, siendo el principal de ellos el hecho de que sólo Pascal y nadie más, era capaz de arreglarla si se presentaba algún fallo.
Pero hay algo que quiero destacar, por cuanto significa que desde siempre ha habido corrientes contrarias que impiden el avance de la creatividad humana: me refiero por supuesto a la tecnofobia de los que deciden, a la tecnofobia de los más letrados.
Porque la Pascalina, así como fue la primera máquina de sumar que se conoce, fue también el primer antecedente de tecnofobia, puesto que los matemáticos de la época se opusieron terminantemente a ella ante la eventualidad de que sus trabajos —que desde luego se hacían manualmente— empezaran a no ser necesarios.
Se construyeron en el mundo 50 Pascalinas como copia del modelo original (el antecedente representativo del modelo de producción en serie del futuro) algunas de las cuales pueden admirarse en la actualidad en el Museo de Ranquet, en Clermond Ferrand, Francia.
¿Cuál fue la repercusión de esta genialidad de Pascal?
Es simple: Sin este gran paso primario, la era de las computadoras todavía estaría en la fila de espera de la historia.
Deducimos que Blaise Pascal fue un genio precoz cuando reflexionamos que a los 19 años —para ser exactos, en 1642— construyó la Pascalina.
La Pascalina fue la primera máquina sumadora mecánica del mundo (o por lo menos, del mundo documentado) que se conoce, y Pascal la fabricó con la intención de ayudar a su padre, quien era un alto funcionario de las finanzas francesas, en los avatares matemáticos de su profesión.
Esta genial maquinucha, que de tan sólo pensar en su concepción se siente uno hondamente impresionado, estaba basada, sin embargo, en un antiguo diseño inventado por los griegos para calcular las distancias que recorrían los carruajes. Como se vé, todo es sistémico.
Pero lo que nos debe causar más asombro todavía es que el principio básico de esta máquina calculadora, conocida como la Pascalina, se use todavía como fundamento en nuestros días en algunos pluviómetros y cuentakilómetros.
El mecanismo era operado por una serie de discos asociados a ruedas que llevaban marcados los números, del cero al nueve, en sus circunferencias.
Cuando una rueda daba una vuelta completa, avanzaaba la otra rueda situada a su izquierda. Naturalmente, había unos indicadores sobre los anteriores discos, que eran los encargados de dar la respuesta buscada.
En conjunto, el engranaje proporcionaba un mecanismo de respuesta idéntico al resultado que se puede obtener empleando la aritmética.
No obstante, la Pascalina tenía varios inconvenientes, siendo el principal de ellos el hecho de que sólo Pascal y nadie más, era capaz de arreglarla si se presentaba algún fallo.
Pero hay algo que quiero destacar, por cuanto significa que desde siempre ha habido corrientes contrarias que impiden el avance de la creatividad humana: me refiero por supuesto a la tecnofobia de los que deciden, a la tecnofobia de los más letrados.
Porque la Pascalina, así como fue la primera máquina de sumar que se conoce, fue también el primer antecedente de tecnofobia, puesto que los matemáticos de la época se opusieron terminantemente a ella ante la eventualidad de que sus trabajos —que desde luego se hacían manualmente— empezaran a no ser necesarios.
Se construyeron en el mundo 50 Pascalinas como copia del modelo original (el antecedente representativo del modelo de producción en serie del futuro) algunas de las cuales pueden admirarse en la actualidad en el Museo de Ranquet, en Clermond Ferrand, Francia.
¿Cuál fue la repercusión de esta genialidad de Pascal?
Es simple: Sin este gran paso primario, la era de las computadoras todavía estaría en la fila de espera de la historia.
Suscribirse a:
Comentarios (Atom)
 
 
            
           