Sei sulla pagina 1di 17

Pensaban que la categora Software sera nada ms para publicar programas?

Si bien es cierto, el computador no puede realizar ninguna funcin por s solo; se requiere de alguna instruccin que le dirija y organice todas las operaciones a cumplir. Esta alguna son las instrucciones que el programador escribe. Estas instrucciones, agrupadas en forma de programas que sern depositados en la memoria del computador, forman lo que se denomina software.Por lo tanto, es un componente creado por el humano, y es lo que permite que el computador pueda desempear tareas inteligentes; dirigir en forma adecuada a los elementos fsicos o hardware. Es el software lo que indica al hardware en qu secuencia y bajo qu lgica hay que hacer los clculos y las manipulaciones de datos. Qu es el Software? Definicin y Concepto del Software. El software es un conjunto de programas elaborados por el hombre, que controlan la actuacin del computador, haciendo que ste siga en sus acciones una serie de esquemas lgicos predeterminados.Tal caracterstica lgica o inteligente del software es lo que hace que se le defina tambin como la parte inmaterial de la informtica, ya que aunque los programas que constituyen el software residan en un soporte fsico, como la memoria principal o los disquetes (o cualquier dispositivo rgido de almacenamiento), la funcin de los programas en un computador es semejante a la del pensamiento en un ser humano.El software es el nexo de unin entre el hardware y el hombre. El computador, por s solo, no puede comunicarse con el hombre y viceversa, ya que lo separa la barerra del lenguaje. El software trata de acortar esa barrera, estableciendo procedimientos de comunicacin entre el hombre y la mquina; es decir, el software obra como un intermediario entre el hardware y el hombre.Si las capacidades del hardware fuesen muy grandes, y en consecuencia el usuario tuviese plenas facilidades en su utilizacin, no sera necesario recurrir al software. Desgraciadamente, nunca ser as. Si bien el progreso del hardware es cada vez mayor y los dispositivos fsicos se construyen cada vez con ms inteligencia includa, en forma que se resuelven por hardware funciones anteriormente slo factibles por software, es prcticamente imposible que el avance tecnolgico llegue algn dia a eliminar la necesidad de software, ya que ste tambin evoluciona y las facilidades que el usuario pide al computador son cada da ms sofisticadas.Una relacin muy verdica y acertada para entender la divisin del software y hardware, es la divisin teolgica entre cuerpo y alma.Tal y como he definido el software, ste es un conjunto de programas. La pregunta ahora es: qu es un programa? Un programa es una secuencia de instrucciones que pueden ser interpretadas por un computador, obteniendo como fruto de esa interpretacin un determinado resultado que ha sido predeterminadamente establecido por el ser humano.Los programas estn divididos en rutinas. Una rutina es un subconjunto del conjunto de instrucciones que conforman el programa. Cada una de las rutinas de un programa realiza una determinada funcin dentro del mismo. Pero, nace otra pregunta:

Cules son los tipos o la clasificacin del Software (programas)? La clasificacin bsica es: software de sistema y software de aplicacin. El software de sistema es el software bsico o sistema operativo. Es un conjunto de programas cuyo objeto es facilitar el uso del computador (asla de la complejidad de cada dispositivo, y presenta al exterior un modelo comn de sistema de manejo para todos los dispositivos) y conseguir que se use eficientemente (ejemplo: realizar operaciones mientras se ejecuta un programa). Administra y asigna los recursos del sistema (hard-ware). Por otro lado, el software de aplicacin son los programas que controlan y optimizacin la operacin de la mquina, establecen una relacin bsica y fundamental entre el usuario y el computador, hacen que el usuario pueda usar en forma cmoda y amigable complejos sistemas hardware, realizan funciones que para el usuario seran engorrosas o incluso imposibles, y actan como intermediario entre el usuario y el hardware. Son escritos / modificados por programadores de sistemas que han de tener profundos conocimientos acerca de cmo trabaja realmente la mquina. Se proporciona normalmente como parte integrante de la mquina por el proveedor. 1. SOFTWARE DE SISTEMAS: Son aquellos programas que permiten la administracion de la parte fisica o los recursos de la computadora, es la que interactua entre el usuario y los componentes hardware del ordenador. Se clasifican el Sistemas Operativos Monousuarios y Multiusuarios. 2.SOFTWARE DE APLICACION:Son aquellos programas que nos ayudan a tareas especificas como edicion de textos, imagenes, calculos, etc. tambien conocidos como aplicaciones. Software de Uso General: El software para uso general ofrece la estructura para un gran nmero de aplicaciones empresariales, cientficas y personales. El software de hoja de clculo, de diseo asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categora. La mayora de software para uso general se vende como paquete; es decir, con software y documentacin orientada al usuario ( manuales de referencia, plantillas de teclado y dems ). Software de aplicaciones: El software de aplicacin esta diseado y escrito para realizar tareas especficas personales, empresariales o cientficas como el procesamiento de nminas, la administracin de los recursos humanos o el control de inventarios. Todas stas aplicacion es procesan datos (recepcin de materiales) y generan informacin (registros de nmina). para el usuario. Software de Aplicacin, programa informtico diseado para facilitar al usuario la realizacin de un determinado tipo de trabajo. Posee ciertas caractersticas que le diferencia de

un sistema operativo (que hace funcionar al ordenador), de una utilidad (que realiza tareas de mantenimiento o de uso general) y de un lenguaje (con el cual se crean los programas informticos). Suele resultar una solucin informtica para la automatizacin de ciertas tareas complicadas como puede ser la contabilidad o la gestin de un almacn. Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estn exclusivamente diseadas para resolver un problema especfico. Otros, llamados paquetes integrados de software, ofrecen menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de clculo y de base de datos. 2.1. Clasificacin de Software El software son los programas los cuales contienen las instrucciones responsables de que el Hardware realice su tarea, se le denomina Software a todos los componentes intangibles de un ordenador, es decir, el conjunto de programas y procedimientos necesarios para hacer posible la realizacin de una tarea especifica, en contraposicin a los componentes fsicos de un sistema de computo. Esto incluye aplicaciones informticas tales como un procesador de textos, que permite al usuario realizar una tarea, sistema operativo que permite funcionar al resto de los programas adecuadamente. El termino Software fue usado pro primera ves en este sentido por John W. Tukey en 1957. En las ciencias de la computacin y la ingeniera de software, el software es toda la informacin procesada por los sistemas informticos: programas y datos. El software se clasifica de dos maneras:

Tipo de trabajo realizado Mtodo de distribucin

Clasificacin del Software de acuerdo al tipo de trabajo realizado Software de Sistema: Coleccin de programas residentes en la computadora, este tipo de software resulta pieza esencial para el uso de la computadora y el desarrollo de ms software, una definicin mas que podemos dar es que es una de las partes que permite el funcionamiento de la computadora, el objetivo del software de sistema es aislar tanto como sea posible al programador de aplicaciones de los detalles del computador particular que se use, especialmente de las caractersticas fsicas de la memoria, impresoras, pantallas, teclados etc. El software de sistema son los programas bsicos el cual controla a la computadora, tambin llamado sistema operativo el cual tiene tres grandes funciones: coordina y manipula el hardware del ordenador, como la memoria, las unidades de disco; organiza los archivos en diversos dispositivos de almacenamiento y gestiona los errores de hardware y del mismo software. Los sistemas operativos pueden ser de tarea nica o multitarea. Los sistemas operativos de tarea nica, los ms primitivos, solo pueden manejar un proceso en cada momento. Todos los sistema operativos modernos son multitarea, esto quiere decir que puedes realizar varias

acciones a la ves como por ejemplo mandar a imprimir y estar trabajando con otro documento o lo mas usual estar navegando por internet y escuchar muisca. Software de Aplicacin: El software de aplicacin permite a los usuarios llevar a cabo una o varias tareas mas especificas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial nfasis en los negocios, tambin podemos decir que el software de aplicacin son aquellos que nos ayudan a la elaboracin de una determinada tarea, este tipo de software es diseado para facilitar al usuario en la realizacin de un determinado tipo de trabajo. El software de aplicacin resulta una solucin informtica para la automatizacin de ciertas tareas complicadas como puede ser la contabilidad y gestin de una organizacin, como ejemplo del software de aplicacin podemos mencionar a la paquetera que nos ofrece Office de Microsoft (Word, Excel, One Note, etc.), Word Perfec, Lotus 123. Software de Desarrollo: El software de desarrollo recibe varios nombre, como software de programacin o lenguaje de programacin del software, en si el software de desarrollo es cualquier lenguaje artificial que podemos utilizar para definir una secuencia de instrucciones para su procesamiento por un ordenador. Es complicado definir que es y que no es un software de desarrollo, generalmente se dice que la traduccin de las instrucciones a un cdigo que comprende la computadora deber ser completamente sistemtica (sigue o se ajusta a un conjunto de reglas). El software de programacin proporciona herramientas para ayudar al programados s escribir programas informticos y a usar diferentes lenguajes de programacin de forma practica, entre los lenguajes de programacin mas utilizados podemos mencionar: C++, Java, C#, Visual Basic, etc. Clasificacin del Software de acuerdo al tipo de trabajo realizado Feeware: Freeware es un software de computadora que se distribuye sin cargo. A veces se incluye el cdigo fuente, pero no es lo usual. El Freeware suele incluir una licencia de uso, que permite su redistribucin pero con algunas restricciones, como no modificar la aplicacin en s, ni venderla, y dar cuenta de su autor. Programa computacional cuyo costo econmico para el usuario final es cero, independiente de las condiciones de distribucin y uso que tenga. Este tipo de software la mayora son utileras para realizar cierta tarea como el programa Win Rar, el cual nos sirve para la compresin de un archivo. Software multimedia: El software multimedia se refiere a los programas utilizados para presentar de una forma integrada textos, grficos, sonidos y animaciones, este tipo de software es considerado como una nueva tecnologa. Las ventajas que se le atribuyen al software multimedia es en la educacin, especialmente en escuelas primarias, por que realizando presentaciones con software multimedia, los alumnos prestan mas intencin a la presentacin realizada. Este tipo de software suele utilizarse para el desarrollo de proyectos

especficos multimedios, utilizar software multimedia requiere de tiempo, capacidades, dedicacin y recursos. Software de uso general: El software de uso general son aquellos que nos sirven para resolver problemas muy variados del mismo tipo, de muy diferentes empresas o personas, con adaptaciones realizadas por un usuario, ejemplos: procesadores de texto, manejadores de bases de datos, hojas de clculo, etc. Software de uso especifico: Hablar de este tipo de software nos referimos al software desarrollado especficamente para un problema especifico de alguna organizacin o persona, utilizar este software requiere de un experto en informtica para su creacin o adaptacin, son los programas que usan las escuelas para registrar las calificaciones de los alumnos y generar certificados, los que usan los bancos para el control de las cuentas, etc. Definicin Lenguaje Programacion Lenguajes, compiladores e Intrpretes. Definicin Un lenguaje de programacin es una serie de comandos que nos permiten codificar instrucciones de manera que sean entendidas y ejecutadas por una computadora. Un intrprete es aquel lenguaje que no trabaja en cdigo mquina en forma directa, sino que va traduciendo cada instruccin. Ejemplo de esto fue el Dbase. Obviamente son mucho ms lentos que los lenguajes de alto nivel que trabajan ejecutando instrucciones directamente en cdigo mquina. Un compilador lo que permite es traducir las instrucciones del lenguaje contenidas en el cdigo fuente (instrucciones) a cdigo mquina, de manera que el programa no necesita interpretar o convertir cada instruccin. Debido a esto es mucho ms veloz que un intrprete y por supuesto mucho mas profesional. > Estructurados vs no estructurados A partir de C el gran lenguaje, y Pascal; se dividen los lenguajes en estructurados (aquellos que en su codificacin usaban una estructura jerrquica de procedimientos y funciones), en contraposicin a los lenguajes no estructurados como el Basic cuya codificacin se basaba en lneas de programacin, permitiendo al programador "saltar" de una lnea de instruccin a otra, haciendo que el cdigo fuera algunas veces inentendible y muy difcil de mantener (modificar) porque no segua una estructura. Basic de todos modos evolucion, primero con el ahora primitivo GW Basic, teniendo su mxima expresin con el Quick Basic del D.O.S. 5.0, el cual ya inclua algunos conceptos mas de avanzada y ms "aggiornados" a lo que eran sus contrapartes estructuradas.

> 1985-1990 y el nacimiento del Xbase dBase fue el gran desarrollo para base de datos de los aos 80. Bajo la batuta de la firma Ashton Tate, empresa que dio origen a un interprete de bases de datos muy sencillo y poderoso: dBbase II. Luego vinieron el dBase III+ que hizo furor, y la etapa de la decadencia para dBase: el dBase IV, ya bajo la direccin de Borland. As surgi el gran compilador Clipper, de Nantucket Corp., en su versin Autumm 86 que permita generar ejecutables libres de royalties y sin runtimes, incluso tomando en forma directa el cdigo dBase. Pero no solo era eso, proveia cientos de comandos y funciones para potenciar al dBase. Al ver el xito de dBase y Clipper, surgi la empresa Fox Software que desarrollo el FoxBase (un clon de dBase III+) y supero al "maestro" con su versin Fox Plus, pero aun as, nunca pudo superar a Clipper ya que siempre lidio con su poltica de necesitar de runtimes para su ejecucin, cosa que Clipper nunca necesit. > Los primeros aos, 1990-1995: Las bases de datos relacionales A principios de la dcada pasada, se nota la evolucin de los lenguajes de programacin. En forma profesional y aplicaciones de alto nivel, el lenguaje preferido era C. Para el aprendizaje se usaba Pascal, que permita inculcar el concepto de programacin estructurada. Tambin Basic, era un lenguaje utilizado, no en pocas ocasiones en forma profesional, aunque con ciertas limitaciones; su reinado estuvo en los aos 80. En lenguaje C, fue y todava es el gran artfice de la computacin actual. A partir de el se desarrollaron compiladores que realmente constituan otros lenguajes de programacin. Es decir un lenguaje que crea otros lenguajes. Tal es el caso de la estrella de la primera mitad de la dcada pasada: Clipper de Nantucket Corp., el gran compilador de lenguaje Xbase. Clipper fue criticado por los profesionales de la programacin quienes aducan que no era un lenguaje, sino un simple compilador nacido de la necesidad de aligerar la ejecucin de cdigo del Interprete que le dio su origen, es decir el dBase. Pero realmente Clipper, gracias a llevar dentro su cdigo un corazn de lenguaje C, fue muy fcil de utilizar y alcanzo gran popularidad. Se desarrollaron librera externas, y con la programacin al estilo C a partir de su versin 5.0 y la inclusin de objetos, se convirti en uno de los favoritos de la programacin administrativa, junto con Pascal. Todos los lenguajes Xbase se basaban en el concepto de bases de datos relacionales, es decir la agrupacin de la informacin en forma de tablas, denominadas campos y registros, cada uno de ellos preformateados para recibir cierto tipo de dato (ej: fechas, caracteres, nmeros, valores lgicos, etc.); pudiendo "unir" diferentes bases por medio de campos comunes. > La segunda mitad, 1995-2000: La orientacin a objetos A medida que los aos van pasando el concepto de Bases relacionales empieza a decaer relativamente, surge entonces una variante que se aplica a todos los lenguajes: La orientacin a objetos. Ya no solo se habla de programacin estructurada, sino que los mdulos de programacin son vistos como objetos, las estructuras representan objetos y/o funciones que se adaptan en forma general a procesos especficos es la maximizacin de la programacin modular.

El modelo de objetos engloba los conceptos de encapsulacin, herencia y poliformismo, el cual se aplica a los datos y al tipo de bases de datos que almacena la informacin. La orientacin a objetos significa la agrupacin de entidades de datos de forma global, de tal manera que puedan ser interpretados de una forma comn por una misma estructura de programacin. > El fin de los lenguajes D.O.S.: Windows 95 Windows 95 marca el comienzo del fin de la programacin D.O.S. y por lo tanto de los lenguajes basados en este. Este proceso no fue enrgico, todava hoy (2000), estamos viviendo esta etapa. Todava hay numerosos y excelentes sistemas desarrollados bajo entorno D.O.S. ejecutndose pero cada vez son los menos. Veamos que hicieron los lenguajes D.O.S. para mantenerse en el mercado: Clipper trato de evolucionar hacia Windows bajo la batuta de Computer Associates con el nombre de Visual Objects, el cual fue un fracaso. Al igual que Visual Dbase 5.0 bajo la rbita de Borland. Los nicos "sobrevivientes" al menos en esencia son Visual Fox (Microsoft), Visual Basic (Microsoft), Delphi (Borland) y Visual C (Microsoft) > 2000 y ms all: lenguajes visuales Con al llegada de Windows todo es Visual, todo es iconos, todo es botones, todo es Ventanas. Para programar en lenguajes visuales, primero hay que comprender lo que es Windows. La forma de programar los sistemas evolucion radicalmente. Con Windows es preciso programar conservando las convenciones del mismo, guardando sus caractersticas y funcionalidades. Los sistemas hechos para Windows, deben ser tan Windows como el propio sistema operativo. La forma de programar se basa en objetos, cada uno de los cuales tiene sus Propiedades y funciones. Se basa en la programacin de eventos para dichos objetos. Otro detalle es que la programacin se basa en componentes (OLE, OCX, ActiveX), los cuales reducen notablemente el trabajo de la programacin al proporcionar herramientas antes impensadas en la programacin D.O.S. Todos los lenguajes visuales ofrecen RAD (Rapid Aplication Development) o Wizzards; con lo cual comenzaron a prometer hacer aplicaciones en poco tiempo, incluso para inexpertos. Lejos estaban ya los tiempos en que programar era solo usar un simple editor de textos. Ahora las herramientas de programacin son poderosas. Son casi un sistema operativo, por asi decirlo; con entornos de desarrollo avanzados y excelentes Debuggers. Los paradigmas de la programacin Windows son: - Borland Delphi (la evolucin del Pascal) - Visual Fox (la evolucin del Xbase) - Visual Basic (la evolucin de Basic) - Visual C (la evolucin del C) Las incursiones cada mas innovadoras de Microsoft parecen imponer a la web como el centro de desarrollo de aplicaciones: Microsoft .NET

> Una visin a la WEB y al futuro: HTML, Perl, PHP, Pithon, Java y otros Internet ha sido el disparador de nuevos lenguajes tales como el HTML que es el lenguaje de programacin de las pginas WEB para hipertexto. El mismo constituye una codificacin bastante simple, basada en marcadores (TAGs). De la misma manera, cuando se hace necesario proveer de funciones adicionales a un servicio web se recurre a Perl o a Pithon que son lenguajes que nos permiten escribir scripts para ser alojados en los servidores a efectos de proveer contadores, estadsticas, rankings, etc. Por otra parte Java, bajo la direccin de SUN, constituye la idea de la programacin abierta y universal para las aplicaciones de escritorio, pero todava los estndares visuales (C, Basic y Delphi), son demasiado poderosos como para desplazarlos, a pesar de que Java promete tambin ser un lenguaje de excelentes prestaciones. Las nuevas tecnologas WEB inundan el mercado: PHP, ASP, XML, DHTML, lo cual enriquecen la forma de manejar la informacin y su presentacin al usuario final. Conclusiones Es de esperarse que los lenguajes Visuales dominen el mundo de las PCs durante mucho tiempo, por lo menos mientras no evolucionen de otra manera los Sistemas Operativos. Los lenguajes de programacin evolucionan a medida que lo hacen los Sistemas Operativos en que funcionan, siempre ha sido as. Nunca un lenguaje de programacin determin un Sistema Operativo, por el contrario los Sistemas Operativos determinaron los lenguajes de programacin. La compaa lder de Internet presenta un nuevo lenguaje de programacin diseado para el desarrollo de aplicaciones web. 12/10/2011 - Tras varios meses de desarrollo y numerosos especulaciones, Google ha presentado su nuevo lenguaje de programacin Dart. Google ha querido desarrollar un lenguaje de programacin orientado a objetos que resulte familiar a los programadores, que sea sencillo de aprender, que permita la adecuacin a cualquier navegador web, y que al mismo tiempo sea un lenguaje de programacin estructurado, flexible y de cdigo abierto. Para acceder a completa informacin acerca de Dart, se ha creado un centro de recursos bajo el dominio Dartlang.org donde encontrar desde tutoriales, ejemplos de cdigo o artculos variados. La llegada de Dart pretende resolver algunas de las deficiencias en la escalabilidad del lenguaje JavaScript, uno de los ms utilizados actualmente en el desarrollo web. El cdigo de Dart puede ser ejecutado bien en una mquina virtual nativa (se cree que prximamente disponible en Chrome), bien usando un compilador que traduzca el cdigo Dart a Javascript. El lenguaje llega junto a un set de libreras bsicas y herramientas para la comprobacin y compilacin de cdigo. Dart es el segundo proyecto de Google en la creacin de un nuevo lenguaje de programacin. En 2009 la compaia lder de Internet lanz Go como alternativa a las complejidades de C++ y Java. ALGUNOS LEGUAJES DE PROGRAMACIN DE ALTO NIVEL

A continuacin se presentan varios de los mas conocidos y utilizados, lenguajes de alto nivel. Ensamblador:Cuando abstraemos los opcodes y los sustituimos por una palabra que sea una clave de su significado, a la cual comnmente se le conoce como mnemnico , tenemos el concepto de Lenguaje Ensamblador . As, podemos definir simplemente al Lenguaje Ensamblador de la siguiente forma: Lenguaje Ensamblador es la primera abstraccin del Lenguaje de Mquina , consistente en asociar a los opcodes palabras clave que faciliten su uso por parte del programador Como se puede ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de Mquina, y viceversa; simplemente, es una abstraccin que facilita su uso para los seres humanos. Por otro lado, la computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Mquina. Originalmente, este proceso se haca a mano, usando para ello hojas donde se escriban tablas de programa similares al ejemplo de la calculadora que vimos arriba . Pero, al ser tan directa la traduccin, pronto aparecieron los programas Ensambladores, que son traductores que convierten el cdigo fuente (en Lenguaje Ensamblador) a cdigo objeto (es decir, a Lenguaje de Mquina). Una caracterstica que hay que resaltar, es que al depender estos lenguajes del hardware, hay un distinto Lenguaje de Mquina (y, por consiguiente, un distinto Lenguaje Ensamblador) para cada CPU. Por ejemplo, podemos mencionar tres lenguajes completamente diferentes, que sin embargo vienen de la aplicacin de los conceptos anteriores: 1.Lenguaje Ensamblador de la familia Intel 80x86 2.Lenguaje Ensamblador de la familia Motorola 68000 3.Lenguaje Ensamblador del procesador POWER, usado en las IBM RS/6000. Tenemos 3 fabricantes distintos, compitiendo entre s y cada uno aplicando conceptos distintos en la manufactura de sus procesadores, su arquitectura y programacin; todos estos aspectos, influyen en que el lenguaje de mquina y ensamblador cambie bastante. Ventajas y desventajas del Lenguaje Ensamblador Una vez que hemos visto la evolucin de los lenguajes, cabe preguntarse: En estos tiempos "modernos", para qu quiero el Lenguaje Ensamblador? El proceso de evolucin trajo consigo algunas desventajas, que ahora veremos como las ventajas de usar el Lenguaje Ensamblador, respecto a un lenguaje de alto nivel: 1.Velocidad 2.Eficiencia de tamao 3.Flexibilidad Por otro lado, al ser un lenguaje ms primitivo, el Ensamblador tiene ciertas desventajas respecto a los lenguajes de alto nivel:

1.Tiempo de programacin 2.Programas fuente grandes 3.Peligro de afectar recursos inesperadamente 4.Falta de portabilidad Velocidad: El proceso de traduccin que realizan los intrpretes, implica un proceso de cmputo adicional al que el programador quiere realizar. Por ello, nos encontraremos con que un intrprete es siempre ms lento que realizar la misma accin en Lenguaje Ensamblador, simplemente porque tiene el costo adicional de estar traduciendo el programa, cada vez que lo ejecutamos. De ah nacieron los compiladores, que son mucho ms rpidos que los intrpretes, pues hacen la traduccin una vez y dejan el cdigo objeto, que ya es Lenguaje de Mquina, y se puede ejecutar muy rpidamente. Aunque el proceso de traduccin es ms complejo y costoso que el de ensamblar un programa, normalmente podemos despreciarlo, contra las ventajas de codificar el programa ms rpidamente. Sin embargo, la mayor parte de las veces, el cdigo generado por un compilador es menos eficiente que el cdigo equivalente que un programador escribira. La razn es que el compilador no tiene tanta inteligencia, y requiere ser capaz de crear cdigo genrico, que sirva tanto para un programa como para otro; en cambio, un programador humano puede aprovechar las caractersticas especficas del problema, reduciendo la generalidad pero al mismo tiempo, no desperdicia ninguna instruccin, no hace ningn proceso que no sea necesario. Para darnos una idea, en una PC, y suponiendo que todos son buenos programadores, un programa para ordenar una lista tardar cerca de 20 veces ms en Visual Basic (un intrprete), y 2 veces ms en C (un compilador), que el equivalente en Ensamblador. Por ello, cuando es crtica la velocidad del programa, Ensamblador se vuelve un candidato lgico como lenguaje. Ahora bien, esto no es un absoluto; un programa bien hecho en C puede ser muchas veces ms rpido que un programa mal hecho en Ensamblador; sigue siendo sumamente importante la eleccin apropiada de algoritmos y estructuras de datos. Por ello, se recomienda buscar optimizar primero estos aspectos, en el lenguaje que se desee, y solamente usar Ensamblador cuando se requiere ms optimizacin y no se puede lograr por estos medios. Tamao :Por las mismas razones que vimos en el aspecto de velocidad, los compiladores e intrpretes generan ms cdigo mquina del necesario; por ello, el programa ejecutable crece. As, cuando es importante reducir el tamao del ejecutable, mejorando el uso de la memoria y teniendo tambin beneficios en velocidad, puede convenir usar el lenguaje Ensamblador. Entre los programas que es crtico el uso mnimo de memoria, tenemos a los virus y manejadores de dispositivos (drivers). Muchos de ellos, por supuesto, estn escritos en lenguaje Ensamblador.

Flexibilidad: Las razones anteriores son cuestin de grado: podemos hacer las cosas en otro lenguaje, pero queremos hacerlas ms eficientemente. Pero todos los lenguajes de alto nivel tienen limitantes en el control; al hacer abstracciones, limitan su propia capacidad. Es decir, existen tareas que la mquina puede hacer, pero que un lenguaje de alto nivel no permite. Por ejemplo, en Visual Basic no es posible cambiar la resolucin del monitor a medio programa; es una limitante, impuesta por la abstraccin del GUI Windows. En cambio, en ensamblador es sumamente sencillo, pues tenemos el acceso directo al hardware del monitor. Resumiendo, la flexibilidad consiste en reconocer el hecho de que Todo lo que puede hacerse con una mquina, puede hacerse en el lenguaje ensamblador de esta mquina; los lenguajes de alto nivel tienen en una u otra forma limitante para explotar al mximo los recursos de la mquina. Tiempo de programacin Al ser de bajo nivel, el Lenguaje Ensamblador requiere ms instrucciones para realizar el mismo proceso, en comparacin con un lenguaje de alto nivel. Por otro lado, requiere de ms cuidado por parte del programador, pues es propenso a que los errores de lgica se reflejen ms fuertemente en la ejecucin. Por todo esto, es ms lento el desarrollo de programas comparables en Lenguaje Ensamblador que en un lenguaje de alto nivel, pues el programador goza de una menor abstraccin. Programas fuente grandes: Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente, requerimos ms instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores. Peligro de afectar recursos inesperadamente Tenemos la ventaja de que todo lo que se puede hacer en la mquina, se puede hacer con el Lenguaje Ensamblador (flexibilidad). El problema es que todo error que podamos cometer, o todo riesgo que podamos tener, podemos tenerlo tambin en este Lenguaje. Dicho de otra forma, tener mucho poder es til pero tambin es peligroso. En la vida prctica, afortunadamente no ocurre mucho; sin embargo, al programar en este lenguaje vern que es mucho ms comn que la mquina se "cuelgue", "bloquee" o "se le vaya el avin"; y que se reinicialize. Por qu?, porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones invlidas, que normalmente no aparecen al usar un lenguaje de alto nivel. En ciertos casos extremos, puede llegarse a sobreescribir informacin del CMOS de la mquina (no he visto efectos ms riesgosos); pero, si no la conservamos, esto puede causar que dejemos de "ver" el disco duro, junto con toda su informacin. Falta de portabilidad :Como ya se mencion, existe un lenguaje ensamblador para cada mquina; por ello, evidentemente no es una seleccin apropiada de lenguaje cuando deseamos codificar en una mquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras. Si bien esto es un problema

general a todos los lenguajes, es mucho ms notorio en ensamblador: yo puedo reutilizar un 90% o ms del cdigo que desarrollo en "C", en una PC, al llevarlo a una RS/6000 con UNIX, y lo mismo si despus lo llevo a una Macintosh, siempre y cuando est bien hecho y siga los estndares de "C", y los principios de la programacin estructurada. En cambio, si escribimos el programa en Ensamblador de la PC, por bien que lo desarrollemos y muchos estndares que sigamos, tendremos prcticamente que reescribir el 100 % del cdigo al llevarlo a UNIX, y otra vez lo mismo al llevarlo a Mac. FORTRAN:Abreviatura de FORmula TRANslator (traductor de formulas), fue definido alrededor del ao 1955 en Estados Unidos por la compaa IBM. Es l ms antiguo de los lenguajes de alto nivel. Antes de l, todos los programas se escriban en lenguaje ensamblador o en lenguaje mquina. Es un lenguaje especializado en aplicaciones tcnicas y cientficas. Se caracteriza por su potencia en los clculos matemticos, pero esta limitado en las aplicaciones de gestin, manejo de archivos, tratamiento de cadenas de caracteres y edicin de informes. Es un lenguaje notorio, por la facilidad con que permite expresar una ecuacin. Muchas de sus caractersticas fueron incorporadas mas tarde en el primer lenguaje BASIC. Una de sus ventajas es que es un lenguaje compacto y es tambin ampliamente utilizado para aplicaciones en los negocios que no requieren manejo de grandes archivos de datos. Hasta 1961 se mantuvo como monopolio de IBM, pero posteriormente se fue implementando en ordenadores de otros fabricantes. A lo largo de su existencia han aparecido diferentes versiones, entre las que destaca la adoptada en 1966 por el ANSI (American National Standards Institute), en la que se definieron nuevas reglas del lenguaje y se logro la independencia del mismo con respecto a la mquina; es decir, comenzo la portabilidad del lenguaje. Esta versin se denomin FORTRAN IV o FORTRAN 66, y el idioma se hizo tan popular en los aos 60, que FORTRAN 66 se volvi el primer idioma en ser regularizado oficialmente en 1972. En 1977 apareci una nueva versin mas evolucionada que se llamo FORTRAN V o FORTRAN 77. COBOL:Es el lenguaje mas utilizado en las aplicaciones de gestin, creado en 1960 por un comit denominado CODASYL (COnference on DAta SYstems Languages), patrocinado por el Departamento de Defensa de Estados Unidos, a fin de disponer de un lenguaje universal para aplicaciones comerciales, como expresa su nombre (COmmnon Business Oriented Language).Sus caractersticas ms destacables son las siguientes: se asemeja al lenguaje natural (ingls), es autodocumentado y ofrece grandes facilidades en el manejo de archivos, as como en la edicin de informes escritos. Puede emplear trminos comnmente utilizados en los negocios.Entre sus inconvenientes estn sus rgidas reglas de formatos de escritura, la necesidad de escribir todos los elementos al mximo detalle, la extensin excesiva en sus sentencias, e incluso duplicacin en algunos casos, y la inexistencia de funciones matemticas.No obstante, se puede afirmar que en la actualidad continua siendo el lenguaje mas utilizado en las aplicaciones de gestin.

PL/I:Fue creado a comienzos de los aos sesenta por IBM para ser usado en sus equipos del sistema 360. Inspirndose en los lenguajes ALGOL, COBOL y FORTRAN se desarrollo el PL/I (Programming Language/I) tomando las mejores caractersticas de los anteriores y aadiendo algunas nuevas, con el objetivo de obtener un lenguaje lo mas general posible en cuanto a su implementacin, til para aplicaciones tcnico-cientficas, comerciales, de proceso de textos, de bases de datos y de programacin de sistemas. Se trata de un lenguaje de programacin complejo. Compilado y estructurado, es capaz de gestionar errores y de procesar multitareas, y se emplea en entornos acadmicos y de investigacin. BASIC:El lenguaje BASIC fue diseado por los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College (Estados Unidos) en 1965, con el objetivo principal de proporcionar a los principiantes un lenguaje fcil de aprender, como se indica en su nombre Beginner's All-purpose Symbolic Instruction Code (Cdigo de instrucciones simblico de propsito general para principiantes). Es un lenguaje interactivo muy popular que tiene una aceptacin debido a la facilidad de su uso, es un idioma simple para aprender y fcil de traducir. Que s interactivo, permite la comunicacin directa entre el usuario y el sistema de computo durante la preparacin y uso de los programas.Entre sus principales novedades estn las de ser un lenguaje interpretado y de uso conversacional, til para aplicaciones tcnicas y de gestin. VISUAL BASIC:En mayo de 1991 anuncia de un de un nuevo lenguaje de programacin llamado visual Basic, el cual produce rpida y efectivamente aplicaciones de Windows. Cuando la versin 1.0 sali al mercado este fue diseado para ser un ambiente de programacin ntegramente visual utilizando un editor, compilador y debugger. La meta era habilitar programas producidos por lenguajes tradicionales a rpidas aplicaciones Windows de calidad con poco trabajo Q BASIC:Q Basic es un lenguaje de alto nivel, el cual consiste en instrucciones que los humanos pueden relacionar y entender. El compilador de Qbasic se encarga de traducir el mismo a lenguaje de mquina. PASCAL:Fue creado por el matemtico suizo Nicklaus Wirth en 1970, basndose en el lenguaje ALGOL, en cuyo diseo haba participado en los aos sesenta. Su nombre proviene del filosofo y matemtico francs del siglo XVII, Blaise Pascal, que invento la primera maquina tipo mecnico para sumar. Fue el primer gran lenguaje creado despus de haber sido ampliamente diseminados los conceptos asociados con la programacin estructurada. Aporta los conceptos de tipo de datos, programacin estructurada y diseo descendente, entre otros, adems de haberse convertido en predecesor de otros lenguajes ms modernos, como MODULA-2 y ADA. C

C es un lenguaje de programacin diseado por Dennis Ritchie, fue creado en 1972 inspirado en el lenguaje Simula67 de los Laboratorios Bell, y se instal en un PDP11 en 1972; se dise para ser el lenguaje de los Sistemas Operativos UNIX1. A su vez, UNIX es un Sistema Operativo desarrollado por Ken Thompson, quin utiliz el lenguaje ensamblador y un lenguaje llamado B para producir las versiones originales de UNIX, en 1970. C se invent para superar las limitaciones de B. C es un lenguaje maduro de propsitos generales que se desarroll a partir de estas races; su definicin aparece en 1978 en el apndice ``C Reference Manual'' del libro The C Programming Language, de Brian W. Kernighan y Dennis M. Ritchie (Englewood Cliffs, Nueva Jersey, Prentice-Hall 1978), pero el estndar recomendable ms reciente apareci en junio de 1983, en el documento de los Laboratorios Bell titulado The C Programming Language-Reference Manual, escrito por Dennis M. Ritchie generalizando, un programa en C consta de tres secciones. La primera seccin es donde van todos los ``headers''. Estos ``headers'' son comnmente los ``#define'' y los ``#include''. Como segunda seccin se tienen las ``funciones''. Al igual que Pascal, en C todas las funciones que se van a ocupar en el programa deben ir antes que la funcin principal (main()). Declarando las funciones a ocupar al principio del programa, se logra que la funcin principal est antes que el resto de las funciones. Ahora, solo se habla de funciones ya que en C no existen los procedimientos. JAVASCRIPT:Este lenguaje de programacin originalmente fue llamado LIVESCRIPT, pero luego fue renombrado con el nombre de JAVASCRIPT, con la idea de capitalizar la fama de Java, lenguaje desarrollado por Sun Microsystems. ste es un complemento ideal del lenguaje HTML, al permitir a la pgina realizar algunas tareas por si misma, sin necesidad de estar sobrecargando el servidor del cual depende; JAVASCRIPT es un lenguaje diseado especialmente para ejecutarlo en internet. HTML (hyper text markup language):El lenguaje HTML, sirve para realizar esas atractivas pginas Web. Se trata de un sistema de marcas que permite enlazar al mismo tiempo texto, sonidos y grficos dentro del mismo documento, con otros dentro del servidor o incluso con otros servidores WWW. Es decir, es un editor para combinar textos, imgenes e incluso sonido y ahora tambin imgenes en movimiento. Es, en definitiva, la forma de manejar y presentar la informacin en la red.Las versiones mas avanzadas del HTLM ya traen la capacidad de incluir formas interactivas, fondos predefinidos y tablas de contenido HYPERTALK :"creado por Dan Winkler para Bill Atkinson, el creador del "HyperCard" para Apple-Macintosh. Est orientado a la creacin de aplicaciones conforme al sistema de "hiperarchivos" (sistemas de fichas interrelacionadas donde se facilita el "navegar" de un archivo a otro). HyperTalk es un buen ejemplo de lenguaje orientado a objetos. Este tipo de lenguaje combina la lgica declarativa con los algoritmos . Un programa ya no es una secuencia de instrucciones sino un

conjunto de objetos agrupados en conjuntos, definidos mediante atributos y a los cuales pueden asociarse instrucciones. Perl: Es un lenguaje especializado en el procesamiento de textos, particularmente extraer y validar las respuestas a cuestionarios incluidos en pginas web. PHP: Lenguaje que se acopla al HTML (pginas web) para definir procedimientos que ha de realizar el servidor de web, por ejemplo procesar un formulario, enviar o extraer datos de una base de datos (acoplndose tambin con un lenguaje de tipo SQL), enviar una u otra pgina web segn determinadas condiciones prefijadas por el programador, etc. PROLOG :Los primeros aos de la dcada del 70 son conocidos como un perodo de "crisis del software", en que se descubri que la creacin de buenos programas involucraba costos mayores que los del hardware que los ejecuta. Tambin se haca patente una creciente necesidad de procesar "conocimientos" (algo mucho ms amplio y complejo que los datos cuantitativos o meras "secuencias de caracteres" a los cuales se reducen muchos lenguajes de programacin). Esta crisis llev a investigar numerosas alternativas, entre las cuales nuevos lenguajes no basados en instrucciones algortmicas o procedimientos. Si el hombre "procesa" ms informacin por inferencia lgica que por clculo, no podra la mquina hacer lo mismo? SQL :Lenguaje desarrollado especialmente para facilitar la consulta de bases de datos (BD), acotando progresivamente la bsqueda (de ah el nombre de "Sequential Query Language"). Existen hoy numerosas aplicaciones de administracin de bases de datos que recurren al SQL (Las ms conocidas, potentes - y caras - son Oracle e Informix).Hoy se pueden acoplar las bases de datos a hipertextos (pginas web), para lo cual las buenas aplicaciones ya traen mdulos que hacen la conexin. El lenguaje PHP del cual hablamos ms arriba tambin sirve para definir procedimientos de insercin y de consulta de datos en BD que funcionan con SQL. ASP:Su nombre es Active Server Pages. Es un lenguaje independiente, diseado por Microsoft para la codificacin eficiente de los scripts de los servidores, que fueron diseados para ser ejecutados por un servidor Web en respuesta a la peticin de un URL de un usuario. Los scripts de ASP son similares a otros scripts de servidores con los que puedes estar familiarizado, que son utilizados en otras plataformas, como Perl, Python, etc. Power Builder:Realizado por POWERSOFT. Este sistema de desarrollo de aplicaciones para un ambiente cliente/servidor de Windows. Soporta varias bases de datos, incluyendo DB2 y ORACLE, y adems asta empaquetada con la base de datos WATCON SQL. El power builder provee herramientas de programacin visuales igual que el lenguaje de programacin POWERSCRIPT. El soporte para Macintosh, Windows NT y UNIX, tambin esta provisto.

Linux:Linux es una implementacin del sistema operativo UNIX (uno ms de entre los numerosos clnicos del histrico Unix), pero con la originalidad de ser gratuito y a la vez muy potente, que sale muy bien parado (no pocas veces victorioso) al compararlo con las versiones comerciales para sistemas de mayor envergadura y por tanto tericamente superiores. Comenz como proyecto personal del -entonces estudiante- Linus Torvalds, quien tom como punto de partida otro viejo conocido, el Minix de Andy. S. Tanenbaum (profesor de sistemas operativos que cre su propio sistema operativo Unix en PCs XT para usarlo en su docencia). Actualmente Linus lo sigue desarrollando, pero a estas alturas el principal autor es la red Internet, desde donde una gigantesca familia de programadores y usuarios aportan diariamente su tiempo aumentando sus prestaciones y dando informacin y soporte tcnico mtuo. La versin original -y aun predominante- comenz para PCs compatibles (Intel 386 y superiores), existiendo tambin en desarrollo versiones para prcticamente todo tipo de plataformas:

Potrebbero piacerti anche