Download Lenguajes de Programación
Document related concepts
Transcript
UNIVERSIDAD DE EL SALVADOR FACULTAD DE CIENCIAS ECONÓMICAS ESCUELA DE CONTADURIA PÚBLICA Cátedra: SISTEMAS CONTABLES COMPUTARIZADOS Catedrático: LIC. DANIEL NEHEMIAS REYES LOPEZ Tema: Lenguajes de Programación Grupo Teórico: 01 Grupo de Exposición: 05 Integrantes: Nombres: Carnet NANCY JAZMIN ALVARADO ARIAS AA05168 CLAUDIA EUGENIA ESCOBAR MALDONADO EM05020 REBECA SARAI HERNANDEZ ORTIZ HO07004 ROBERTO SALVADOR MORENO GARCIA MG06008 Ciudad universitaria, 13 de Julio de 2012 INDICE Contenido INTRODUCCION ................................................ i OBJETIVOS .................................................. ii HISTORIA DEL SOFTWARE ....................................... 1 HISTORIA DE LOS LENGUAJES DE PROGRAMACIÓN ................... 4 ¿Que son los Lenguajes de Programación? ..................... 6 Lenguajes de programación imperativos y funcionales ......... 7 Lenguaje de programación imperativo ....................... 8 Lenguaje de programación funcional ........................ 8 Interpretación y compilación ................................ 8 Lenguaje interpretado ..................................... 9 Lenguaje compilado ........................................ 9 Algunos ejemplos de lenguajes ampliamente usados ........... 11 CLASIFICACION DE LOS LENGUAJES DE PROGRAMACIÓN ............. 12 LENGUAJES DE BAJO NIVEL (ensamblador): ..................... 13 LENGUAJES DE ALTO NIVEL: ................................... 16 ALGUNOS LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL ............ 19 FORTRAN .................................................. 19 COBOL .................................................... 20 BASIC .................................................... 20 PASCAL ................................................... 21 ADA ...................................................... 22 ETAPAS DE LOS LENGUAJES DE PROGRAMACION .................... 22 Primera Generación ....................................... 23 Segunda Generación ....................................... 25 Tercera generación ....................................... 27 Cuarta Generación ........................................ 28 Quinta Generación ........................................ 30 Lenguajes de programación orientada a objetos .............. 31 Lenguajes de Programación Orientado a Eventos .............. 34 DIFERENCIA ENTRE LENGUAJE DE PROGRAMACION Y SISTEMA GESTOR DE BASE DE DATOS .............................................. 37 LENGUAJES DE PROGRAMACIÓN MÁS COMUNES ...................... 39 LENGUAJES DE PROGRAMACIÓN PARA PAGINAS WEB ................. 43 LENGUAJES DE PROGRAMACIÓN PARA TABLET ...................... 46 ARCHIVO EJECUTALE .......................................... 47 CONCLUSIÓN ................................................ iii BIBLIOGRAFIA ............................................... iv INTRODUCCION Una computadora es una máquina que solo comprende las instrucciones que se le den en un determinado formato. Cada máquina reconoce diferentes que y se ejecuta agrupan un en número los de instrucciones distintos lenguajes de programación. Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo. A través del presente trabajo conoceremos la historia de los lenguajes de programación y cómo han evolucionado con el paso de los años, conceptos básicos, cómo están divididos, su clasificación, etc. En la actualidad hay muchos tipos de lenguajes de programación, cada uno de ellos con su propia gramática, su terminología particular. Por especialmente para especial y una sintaxis existen algunos creados ejemplo, aplicaciones científicas o matemáticas generales; otros, en cambio, se orientan al campo empresarial y al manejo de textos y ficheros, es decir, son en realidad fundamentalmente gestores de información. Página i OBJETIVOS OBJETIVO GENERAL Investigar que son los lenguajes de programación, su importancia, los tipos de lenguajes de programación y la clasificación que comúnmente se les da y poder analizar cómo afecta al profesional en la contaduría pública. OBJETIVOS ESPECÍFICOS 1. Conocer qué son los lenguajes de programación, cuales son los que están orientados a eventos y los orientados a objetos. 2. Diferenciar entre un lenguaje de programación y un gestor de base de datos. 3. Determinar los requisitos que debe tener un Contador público según la IFAC. 4. Conocer qué tipo de lenguaje de programación se utiliza para crear una página web, tabletas. Página ii Lenguajes de Programación HISTORIA DEL SOFTWARE Durante las principal tres primeras desafío computadoras, era de el forma décadas de desarrollo que se la del Informática, hardware redujera el el de las costo de procesamiento y almacenamiento de datos. La necesidad de enfoques sistemáticos para el desarrollo y mantenimiento de productos de software se patentó en la década de 1960. En ésta década aparecieron las computadoras de la tercera programación generación como la y se desarrollaron multiprogramación técnicas y de de tiempo compartido. Y mientras las computadoras estaban haciéndose más complejas, resultó obvio que la demanda por los productos de software creció en mayor cantidad que la capacidad de producir y mantener dicho software. Estas nuevas capacidades aportaron la tecnología necesaria para el establecimiento de sistemas computacionales interactivos, de multiusuario, en línea y en tiempo real; surgiendo nuevas aplicaciones para la computación, como las reservaciones aéreas, bancos de información médica, etc. Fue hasta el año 1968 que se convocó una reunión en Garmisch, Alemania Oriental estimulándose el interés hacia los aspectos técnicos y administrativos utilizados en el desarrollo y mantenimiento del software, y fue entonces donde se utilizó el término "Ingeniería del Software". A lo largo de la década de los ochenta, los avances en microelectrónica han dado como resultado una mayor potencia de cálculo a la vez que una reducción de costo. Sistemas Contables Computarizados Página 1 Lenguajes de Programación Hoy el problema es diferente. El principal desafío es mejorar la calidad y reducir el costo. Las personas encargadas de la elaboración del software se han enfrentado a problemas muy comunes: unos debido a la exigencia cada vez mayor en la capacidad de resultados del software, debido al permanente cambio de condiciones lo que aumenta su complejidad y obsolescencia; y otros, debido a la carencia de herramientas adecuadas y estándares de tipo organizacional encaminados al mejoramiento de los procesos en el desarrollo del software. Una necesidad sentida en nuestro medio es el hecho de que los productos de software deben ser desarrollados con base en la implementación de estándares mundiales, modelos , sistemas métricos, capacitación del recurso humano y otros principios y técnicas de la ingeniería de software que garanticen la producción de software de calidad y competitividad a nivel local e internacional. Con el acelerado avance tecnológico de la información, la cantidad y la complejidad de los productos de software se están incrementando considerablemente, así como también la exigencia en su funcionalidad y confiabilidad; es por esto que la calidad y la productividad se están constituyendo en las grandes preocupaciones desarrolladores de tanto software. En de los gestores primeros como años para del software, las actividades de elaboración de programas eran realizadas por una sola persona utilizando lenguajes de bajo nivel y ajustándose a un computador en especial, que generaban programas difíciles de entender, aun hasta para su creador, después de algún tiempo de haberlo producido. Esto implicaba tener que repetir el mismo proceso para desarrollar el mismo programa Sistemas Contables Computarizados para otras máquinas. Página 2 Lenguajes de Programación Por consiguiente, mantenimiento y la confiabilidad, cumplimiento no se facilidad garantizaban de y la productividad era muy baja. Posteriormente, con la aparición de técnicas estructuradas y con base en las experiencias de los programadores se mejoró la productividad del software. Sin embargo, este software seguía teniendo fallas, como por ejemplo: documentación inadecuada, dificultad para su correcto funcionamiento, y por supuesto, insatisfacción del cliente. Conforme se incrementaba la tecnología de los computadores, también crecía la demanda de los productos de software, pero mucho más lentamente, tanto que hacia 1990 se decía que las posibilidades del software estaban retrasadas respecto a las del hardware en un mínimo de dos generaciones de procesadores y que la distancia continuaba aumentando. En la actualidad muchos de estos problemas subsisten en el desarrollo de software, con una dificultad adicional relacionada con la incapacidad para satisfacer totalmente la gran demanda y exigencias por parte de los clientes. El elemento básico del software es el programa. Un programa es un grupo de instrucciones destinadas a cumplir una tarea en particular. Un programa puede estar conformado por varios programas más sencillos. El software se puede clasificar en tres grupos: sistemas operativos, lenguajes de programación y aplicaciones. Sistemas Contables Computarizados Página 3 Lenguajes de Programación HISTORIA DE LOS LENGUAJES DE PROGRAMACIÓN Los primeros lenguajes de programación surgieron de la idea de Charles Babagge, la cual se le ocurrió a este hombre a mediados del siglo XIX. Era un profesor matemático de la universidad de Cambridge e inventor ingles, que a principio del siglo XIX predijo muchas de las teorías en que se basan los actuales ordenadores. Consistía en lo que él denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con él colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aquélla supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programación, sobre todo si observamos que en cuanto se empezó a programar, los programadores utilizaron las técnicas diseñadas por Charles Babagge, y Ada, que consistían entre otras, en la programación mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios de antaño, se adelantaron un siglo a su época, lo cual describe la inteligencia de la que se hallaban dotados. En 1823 el gobierno Británico lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico para efectuar sumas repetidas. Pero Babagge se dedico al proyecto de la máquina analítica, diferencias, que perforadas, gracias se a abandonando pudiera la la programar creación de máquina con Charles de tarjetas Jacquard (francés). Sistemas Contables Computarizados Página 4 Lenguajes de Programación Este hombre era un fabricante de tejidos y había creado un telar que podía reproducir automáticamente patrones de tejidos, leyendo la información codificada en patrones de agujeros perforados en tarjetas de papel rígido. Entonces Babagge intento crear la máquina que se pudiera programar con tarjetas perforadas para efectuar cualquier cálculo con una precisión de 20 dígitos. Pero la tecnología de la época no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge no llegaron a materializarse de forma definitiva, su contribución es decisiva, ya que los ordenadores actuales responden a un esquema análogo al de la máquina analítica. En su diseño, la máquina constaba de cinco unidades básicas: 1) Unidad de entrada, para introducir datos e instrucciones; 2) Memoria, donde se almacenaban datos y resultados intermedios; 3) Unidad de control, para regular la secuencia de ejecución de las operaciones; 4) Unidad Aritmético-Lógica, que efectúa las operaciones; 5) Unidad de salida, encargada de comunicar al exterior los resultados. Charles Babbage, conocido como el "padre de la informática" no pudo completar en aquella época la construcción del computador que había soñado, dado que faltaba algo fundamental: la electrónica. El camino señalado de Babbage, no fue nunca abandonado y siguiéndolo, se construyeron las primeras computadoras. Sistemas Contables Computarizados Página 5 Lenguajes de Programación ¿Que son los Lenguajes de Programación? Los Lenguajes de programación son la herramienta informática que nos permite establecer una correcta comunicación entre la computadora y el usuario de la misma. Sin lenguaje de programación no sería posible expresar las instrucciones que queremos que la computadora ejecute, ni tampoco podría mostrarnos los resultados de dichas instrucciones. Los lenguajes de programación están compuestos principalmente por unas reglas de tipo semántico y sintáctico que lo definen como lenguaje lenguaje de informático. Pero programación sea esto no implica sinónimo de que un lenguaje informático. Sino que dentro del término lenguaje informático caben otros lenguajes que no son lenguajes de programación como es el caso del HTML. El lenguaje de programación es la instrumento que permite al programador elegir los datos que se deben usar, como serán guardados, como se presentaran al usuario final, que tipo de actuaciones se deben tomar bajo unos determinados supuestos. Para lo cual los lenguajes de programación intentan estar lo mas cercano posible al lenguaje humano o natural. Los lenguajes de programación pasan primero por un son programas proceso de compilación. escritos que Compilar es traducir al lenguaje máquina. Este paso es necesario para que la computadora pueda entender nuestras peticiones. Luego como segundo paso la computadora ejecuta y procesa los datos que le hemos dado. Sistemas Contables Computarizados Página 6 Lenguajes de Programación Entre los lenguajes de programación mas conocidos podemos citar a los siguientes: Ada, Asp, BASIC, C, C++, C#, Clipper, COBOL, Lexico, Delphi, Eiffel, Lingo, Lisp, Ensamblador, Logo, Lua, Fénix, MAGIC, FORTRAN, Modula, Java, Natural, Oberon, Object, Pascal, Perl, PHP, Sh, Simula, Smalltalk, TIBASIC, TCL, VBA, VisualBasic, VisualDialogScript, VisualFoxpro, Yurix, ZPL, etc. Los lenguajes perspectivas. de Programación Es importante son para tomados un de diferentes programador decidir cuales conceptos emitir o cuales incluir en la programación. Con frecuencia el programador es osado a usar combinaciones de conceptos que hacen al lenguaje "DURO" de usar, de entender e implementar. Cada programador tiene en mente un estilo particular de programación, la decisión de incluir u omitir ciertos tipos de datos que pueden tener una significativa influencia en la forma en que el Lenguaje es usado, la decisión de usar u omitir conceptos de programación o modelos. Lenguajes de programación imperativos y funcionales Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos: lenguajes imperativos; lenguajes funcionales. Sistemas Contables Computarizados Página 7 Lenguajes de Programación Lenguaje de programación imperativo Un lenguaje comandos, imperativo agrupados en programa bloques mediante y una compuestos serie de de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio. No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones. Lenguaje de programación funcional Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad. Interpretación y compilación Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías: lenguajes interpretados lenguajes compilados Sistemas Contables Computarizados Página 8 Lenguajes de Programación Lenguaje interpretado Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario. Lenguaje compilado Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable. Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida. Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios. Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En lenguaje interpretado, legible, hace que al ser cualquier directamente persona pueda efecto, el un lenguaje conocer los secretos de fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo. Sistemas Contables Computarizados Página 9 Lenguajes de Programación Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...). Lenguajes intermediarios Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa escrito en estos lenguajes puede, en ciertos intermediaria, en casos, un sufrir archivo una fase escrito en de compilación un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class). Sistemas Contables Computarizados Página 10 Lenguajes de Programación Algunos ejemplos de lenguajes ampliamente usados A continuación, encontrará una breve lista de los lenguajes de programación actuales: Lenguaje ADA BASIC C C++ Principal área de aplicación Tiempo real Compilado/interpretado Lenguaje compilado Programación para fines educativos Programación de sistema Programación de Lenguaje interpretado Lenguaje compilado sistema orientado a objeto Lenguaje compilado Cobol Administración Lenguaje compilado Fortran Cálculo Lenguaje compilado Java MATLAB Programación orientada a Internet Lenguaje intermediario Cálculos matemáticos Lenguaje interpretado Cálculos matemáticos Lenguaje interpretado LISP Inteligencia artificial Lenguaje intermediario Pascal Educación Lenguaje compilado Cálculos matemáticos PHP Inteligencia artificial Perl Desarrollo de sitios web dinámicos Inteligencia artificial Procesamiento de caracteres Sistemas Contables Computarizados de cadenas Lenguaje interpretado Lenguaje interpretado Lenguaje interpretado Página 11 Lenguajes de Programación CLASIFICACION DE LOS LENGUAJES DE PROGRAMACIÓN LENGUAJE MÁQUINA: El lenguaje máquina es el único que entiende directamente la computadora, ya que esta escrito en lenguajes directamente inteligibles por la máquina (computadora), utiliza el alfabeto binario, que consta de los dos únicos símbolos 0 y 1, denominados bits (abreviatura inglesa de dígitos binarios). Sus instrucciones son cadenas binarias (cadenas o series de caracteres de dígitos 0 y 1) que especifican una operación y, las posiciones (dirección) de memoria implicadas en la código operación se maquina. Fue denominan el instrucciones primer lenguaje de máquina utilizado en o la programación de computadoras, pero dejo de utilizarse por su dificultad y complicación, siendo sustituido lenguajes más fáciles de aprender y utilizar, reducen la posibilidad de cometer errores. por otros que además El lenguaje máquina es el conocido código binario. Generalmente, en la codificación de los programas se empleaba el sistema hexadecimal para simplificar el trabajo de escritura. Todas las instrucciones preparadas en cualquier lenguaje máquina tienen por lo menos dos partes. La primera es el comando u operación, que dice a las computadoras cual es la función que va a realizar. Todas las computadoras tienen un código de operación para cada una de las funciones. La segunda parte de la instrucción es el operando, que indica a la computadora donde hallar o almacenar los datos y otras instrucciones que se van a manipular, el número de operándoos de una instrucción varia en distintas computadoras. Sistemas Contables Computarizados Página 12 Lenguajes de Programación Ventajas del (transferir traducción lenguaje un máquina: programa posterior, a lo posibilidad la memoria) que supone sin una de cargar necesidad de velocidad de ejecución superior a cualquier otro lenguaje de programación. Desventajas del lenguaje máquina: dificultad y lentitud en la codificación. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador (CPU). En la actualidad, las desventajas superan a las ventajas, lo que hace prácticamente no recomendables a los lenguajes máquina. LENGUAJES DE BAJO NIVEL (ensamblador): Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje ensamblador es el primer intento de sustituir el lenguaje maquina por otro más similar a los utilizados por las personas. Este intenta desflexibilizar la representación de los diferentes campos. Esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al lenguaje. A principios de la década de los 50 y con el fin de facilitar la labor de los programadores, se desarrollaron códigos mnemotécnicos para simbólicas. Los códigos alfabéticos del lenguaje las operaciones mnemotécnicas maquina. La son y direcciones los símbolos computadora sigue utilizando el lenguaje maquina para procesar los datos, pero los programas ensambladores traducen antes los símbolos de código de operación especificados a sus equivalentes en el lenguaje maquina. Sistemas Contables Computarizados Página 13 Lenguajes de Programación En la actualidad los programadores no asignan números de dirección simplemente reales a los datos simbólicos, especifican donde quieren que se coloque la primera localidad del programa y el programa ensamblador se encarga de lo demás, asigna localidades tanto para las instrucciones como los datos. Estos programas de ensamble o ensambladores también permiten a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio código maquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente. Después de que el ensamblador convierte el programa fuente en código maquina a este se le denomina programa objeto. Para los programadores es más fácil escribir instrucciones en un lenguaje ensamblador que en código de lenguaje maquina pero es posible que se requieran dos corridas de computadora antes de que se puedan utilizar las instrucciones del programa fuente para producir las salidas deseadas. El lenguaje de bajo nivel es el lenguaje de programación que el ordenador puede entender a la hora de ejecutar programas, lo que aumenta su velocidad de ejecución, pues no necesita un intérprete que traduzca cada línea de instrucciones. Visto a muy exclusivamente bajo nivel, señales los microprocesadores electrónicas binarias. procesan Dar una instrucción a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta secuencia de señales se denomina código máquina. El código representa normalmente datos y números e instrucciones para manipularlos. Un modo más fácil de comprender el código máquina es dando a cada instrucción un mnemónico, como por ejemplo STORE, ADD o JUMP. Sistemas Contables Computarizados Página 14 Lenguajes de Programación Esta abstracción lenguaje de da muy como bajo resultado nivel que es el ensamblador, específico de un cada microprocesador. Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son, a menudo, difíciles de aprender. Más importante es el hecho de que los programas escritos en un bajo nivel sean altamente específicos de cada procesador. Si se lleva el programa a otra máquina se debe reescribir el programa desde el principio. Desventajas del lenguaje ensamblador: Dependencia total de la maquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas). El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh. La formación de los programadores es más compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la maquina El programador ha de conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de memoria, registros del procesador y demás elementos físicos. Todas las instrucciones son elementales, es decir, en el programa se deben describir con el máximo detalle todas las operaciones que se han de efectuar en la maquina para la realización de cualquier proceso. Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos. Sistemas Contables Computarizados Página 15 Lenguajes de Programación LENGUAJES DE ALTO NIVEL: Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras. Son lenguajes de programación en los que las instrucciones enviadas para que el ordenador lenguaje ejecute humano. Dado ciertas órdenes que ordenador el son no similares al es de capaz reconocer estas ordenes, es necesario el uso de un intérprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender. Por lo general se piensa que los ordenadores son máquinas que realizan tareas de cálculos o procesamiento de texto. La descripción anterior es sólo una forma muy esquemática de ver una computadora. Hay un alto nivel de abstracción entre lo que se pide a la computadora y lo que realmente comprende. Existe también una relación compleja entre los lenguajes de alto nivel y el código máquina. Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido, los comandos como “IF CONTADOR=10 THEN STOP” pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a diez. Sistemas Contables Computarizados Página 16 Lenguajes de Programación Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática. Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con posterioridad a los anteriores (lenguaje máquina, lenguajes de bajo nivel o ensamblador) con los siguientes objetivos, entre otros: Lograr independencia de la maquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador, que es suministrado por el fabricante, para obtener el programa ejecutable en lenguaje binario de la maquina que se trate. Además, no se necesita conocer el hardware especifico de dicha maquina. Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje maquina, ya que se utilizan palabras (en ingles) en lugar de cadenas de símbolos sin ningún significado aparente. Incluir rutinas de uso frecuente, como las de entrada / salida, funciones matemáticas, manejo de tablas, etc., que figuran en una especie de librería del lenguaje, de manera que se puedan utilizar siempre que se quiera sin necesidad de programarlas cada vez. Ventajas formación de de los lenguajes los de alto programadores es nivel: el tiempo relativamente de corto comparado con otros lenguajes. Sistemas Contables Computarizados Página 17 Lenguajes de Programación La escritura similares de a programas los se lenguajes basa en reglas humanos, sintácticas nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc. Las modificaciones y puestas a punto de los programas son más fáciles. Reducción del costo de los programas. Transportabilidad. Permiten tener una mejor documentación. Son más fáciles de mantener. Desventajas de los lenguajes de alto nivel: incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la maquina que se explotan mucho mejor en lenguajes máquina y ensambladores. Aumento de la ocupación de memoria. El tiempo de ejecución de los programas es mucho mayor. Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso, además de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos. Es difícil establecer una clasificación general de los mismos, ya que en cualquiera que se realice habrá lenguajes que pertenezcan a mas de uno de los grupos establecidos. Una clasificación muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofía con que fueron concebidos, es la siguiente: Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada). Sistemas Contables Computarizados Página 18 Lenguajes de Programación Lenguajes mediante declarativos. Los descripciones programas de se funciones o construyen expresiones lógicas (Lisp, Prolog). Lenguajes orientados a objetos. El diseño de los programas se basa mas en los datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los datos (variables) y las operaciones que actúan sobre ellos (Smalltalk, C++). Lenguajes orientados al problema. Diseñados para problemas específicos, principalmente de gestión, suelen ser generadores de aplicaciones. Lenguajes lenguajes naturales. con el Están principal desarrollándose objetivo de nuevos aproximar el diseño y construcción de programas al lenguaje de las personas. ALGUNOS LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL A continuación se presentan varios de los más conocidos y utilizados, lenguajes de alto nivel. FORTRAN Abreviatura de FORmula TRANslator (traductor de formulas), fue definido alrededor del año 1955 en Estados Unidos por la compañía IBM. Es él más antiguo de los lenguajes de alto nivel. Antes de él, todos los programas se escribían en lenguaje ensamblador o en lenguaje máquina. Es un lenguaje especializado en aplicaciones técnicas y científicas. Sistemas Contables Computarizados Página 19 Lenguajes de Programación Se caracteriza por su potencia en los cálculos matemáticos, pero esta limitado en las aplicaciones de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes. Es un lenguaje notorio, por la facilidad con que permite expresar una ecuación. Muchas de sus características fueron incorporadas mas tarde en el primer lenguaje BASIC. Una de sus ventajas es que es un lenguaje compacto y es también ampliamente negocios que no utilizado requieren para manejo aplicaciones de grandes en los archivos de datos. COBOL Es el lenguaje mas utilizado en las aplicaciones de gestión, creado en 1960 por un comité denominado CODASYL (COnference on DAta SYstems Languages), patrocinado por el Departamento de Defensa lenguaje de Estados universal Unidos, para a fin de aplicaciones disponer de comerciales, un como expresa su nombre (COmmnon Business Oriented Language) BASIC El lenguaje BASIC fue diseñado 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 fácil de aprender, como se indica en Instruction propósito su nombre Code (Código general para Beginner's de All-purpose instrucciones principiantes). Es Symbolic simbólico un de lenguaje interactivo muy popular que tiene una aceptación debido a la facilidad de su uso, es un idioma simple para aprender y fácil de traducir. Sistemas Contables Computarizados Página 20 Lenguajes de Programación Que sé interactivo, permite la comunicación directa entre el usuario y el sistema de computo durante la preparación y uso de los programas. Entre sus principales novedades están las de ser un lenguaje interpretado y de uso conversacional, útil para aplicaciones técnicas y de gestión. Esto, unido a la popularización de las microcomputadoras y computadoras personales, ha hecho que su utilización sea haya extendido enormemente, a la vez que ha propiciado el surgimiento diversiones que particulares el de extienden lenguaje y una se gran diversidad adaptan original. a Existen de necesidades multitud de intérpretes y compiladores del lenguaje. PASCAL Fue creado por el matemático suizo Nicklaus Wirth en 1970, basándose en participado el en lenguaje los años ALGOL, sesenta. en cuyo Su diseño nombre había proviene del filósofo y matemático francés del siglo XVII, Blaise Pascal, que invento la primera maquina tipo mecánico para sumar. Fue el primer ampliamente gran lenguaje diseminados creado los después conceptos de haber asociados sido con la programación estructurada. Aunque en principio la idea del diseñador era proporcionar un lenguaje adecuado para la enseñanza de los conceptos y técnicas de programación, con el tiempo ha llegado a ser un lenguaje ampliamente utilizado en todo tipo de aplicaciones, que posee grandes facilidades para la programación de sistemas y diseño grafico. Sistemas Contables Computarizados Página 21 Lenguajes de Programación ADA Es él ultimo intento de obtener un único lenguaje para todo tipo de aplicaciones, e incluso los últimos avances de técnicas de programación. Su diseño fue encargado por el Departamento de Defensa de Estados Unidos, para su uso en servicios militares, a la empresa Honeywell-Bull después de una selección rigurosa entre varias propuestas realizadas sobre una serie de requerimientos del lenguaje y de haber evaluado negativamente veintitrés lenguajes existentes. De estos, se seleccionaron como base para la creación del nuevo lenguaje el PASCAL, el ALGOL y el PL/I. ETAPAS DE LOS LENGUAJES DE PROGRAMACION Otra clasificación que se puede hacer es la de atendiendo al desarrollo de computadoras, los que lenguajes sigue un desde cierto la aparición paralelismo de las con las generaciones establecidas en la evolución de las mismas: Primera generación. Lenguajes maquina y ensambladores. Segunda generación. Primeros lenguajes de alto nivel imperativo (FROTRAN, COBOL). Tercera generación. Lenguajes de alto nivel imperativo. Son los mas utilizados y siguen vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA). Cuarta generación. Orientados básicamente a las aplicaciones de gestión y al manejo de bases de datos (NATURAL, SQL). Sistemas Contables Computarizados Página 22 Lenguajes de Programación Quinta generación. Orientados a la inteligencia artificial y al procesamiento de los lenguajes naturales (LISP, PROLOG). Para la mejor compresión se harán unas definiciones: Programa: es un conjunto de instrucciones escritas en un lenguaje de programación que indican a la computadora la secuencia de pasos, para resolver un problema. Código fuente: esta creado en algún lenguaje de alto nivel, por lo que es entendido 100% por el ser humano. Este debe estar complementado por su documentación o manuales donde se indica el desarrollo lógico del mismo. Código objeto: es creado por los compiladores y nos sirve como enlace entre el programa fuente y el ejecutable. El desarrollo de las computadoras y de los lenguajes de programación, suele divisarse por generaciones y el criterio que se determinó para determinar el cambio de generación no está muy bien definido, pero resulta aparente que deben cumplirse al menos los siguientes requisitos: La forma en que están construidas. Forma en que el ser humano se comunica con ellas. Primera Generación En esta generación había un gran desconocimiento de las capacidades de las computadoras, puesto que se realizó un estudio en esta época que determinó que con veinte computadoras se saturaría el mercado de los Estados Unidos en el campo de procesamiento de datos. Sistemas Contables Computarizados Página 23 Lenguajes de Programación Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación. Estas máquinas tenían las siguientes características: Estas máquinas estaban construidas por medio de tubos de vacío. Eran programadas en lenguaje de máquina. 1 En esta generación las máquinas son grandes y costosas (de un costo aproximado de ciento de miles de dólares). En 1951 aparece la computadora UNIVAC (NIVersAl comercial, que Computer), disponía de fue mil la primera palabras de memoria central y podían leer cintas magnéticas, se utilizó para procesar el censo de 1950 en los Estados Unidos. En las dos primeras generaciones, las unidades de entrada utilizaban tarjetas perforadas, retomadas por Herman Hollerith (1860 - 1929), quien además fundó una compañía que con el paso del tiempo se conocería como IBM (International Bussines Machines). Después se desarrolló por IBM la IBM 701 de la cual se entregaron 18 unidades entre 1953 y 1957. Posteriormente, la compañía Remington Rand fabricó el modelo 1103, que competía con la 701 en el campo científico, por lo que la IBM desarrollo la 702, la cual presentó problemas en memoria, debido a esto no duró en el mercado. La computadora más exitosa de la primera generación fue la IBM 650, de la cual se produjeron varios cientos. Sistemas Contables Computarizados Página 24 Lenguajes de Programación Esta computadora que usaba un esquema de memoria secundaria llamado tambor magnético, que es el antecesor de los discos actuales. Otros modelos de computadora que se pueden situar en los inicios de la segunda generación son: la UNIVAC 80 y 90, las IBM 704 y 709, Burroughs 220 y UNIVAC 1105. Segunda Generación Cerca de la década de 1960, las computadoras seguían evolucionando, se reducía su tamaño y crecía su capacidad de procesamiento. También en esta época se empezó a definir la forma de comunicarse con las computadoras, que recibía el nombre de programación de sistemas. Las características de la segunda generación son las siguientes: Están construidas con circuitos de transistores. Se programan en nuevos lenguajes llamados lenguajes de alto nivel. En esta generación las computadoras se reducen de tamaño y son de menor costo. Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester. Algunas de estas computadoras se programaban con cintas perforadas y otras más por medio de cableado en un tablero. Sistemas Contables Computarizados Página 25 Lenguajes de Programación Los programas eran hechos a la medida por un equipo de expertos: analistas, diseñadores, programadores y operadores que se manejaban como una orquesta para resolver los problemas y cálculos solicitados por la administración. El usuario final de la información no tenía contacto directo con las computadoras. Esta situación en un principio se produjo en las primeras computadoras personales, pues se requería saberlas "programar" (alimentarle instrucciones) para obtener resultados; por lo tanto su uso estaba limitado a aquellos audaces pioneros que gustaran de pasar un buen número de horas escribiendo instrucciones, "corriendo" el programa resultante y verificando y corrigiendo los errores o bugs que aparecieran. Además, para no perder el "programa" resultante había que "guardarlo" (almacenarlo) en una grabadora de astte, pues en esa época no había discos flexibles y mucho menos discos duros para las PC; este procedimiento podía tomar de 10 a 45 minutos, según el programa. El panorama se modificó totalmente con la aparición de las computadoras personales con mejore circuitos, más memoria, unidades de disco flexible y sobre todo con la aparición de programas de aplicación general en donde el usuario compra el programa y procesadores se de pone a palabras trabajar. como el Aparecen los célebre Word programas Star, la impresionante hoja de cálculo (spreadsheet) Visicalc y otros más que de la noche a la mañana cambian la imagen de la PC. El sortware empieza a tratar de alcanzar el paso del hardware. Pero aquí aparece un nuevo elemento: el usuario. Sistemas Contables Computarizados Página 26 Lenguajes de Programación Tercera generación Con los progresos de la electrónica y los avances de comunicación con las computadoras en la década de los 1960, surge la tercera generación de las computadoras. Se inaugura con la IBM 360 en abril de 1964.3 Las características de esta generación fueron las siguientes: Su fabricación electrónica esta basada en circuitos integrados. Su manejo es por medio de los lenguajes de control de los sistemas operativos. La IBM produce la serie 360 con los modelos 20, 22, 30, 40, 50, 65, 67, especiales canales, 75, del 85, 90, 195 procesador, paquetes características que de que unidades discos ahora son utilizaban de técnicas cinta magnéticos estándares (no de nueve y otras todos los modelos usaban estas técnicas, sino que estaba dividido por aplicaciones). El sistema operativo de la serie 360, se llamó OS que contaba con varias configuraciones, incluía un conjunto de técnicas de manejo de memoria y del procesador que pronto se convirtieron en estándares. 2 En 1964 CDC introdujo la serie 6000 con la computadora 6600 que se consideró durante algunos años como la más rápida. En la década de 1970, la IBM produce la serie 370 (modelos 115, 125, 135, 145, 158, 168). UNIVAC compite son los modelos 1108 y 1110, máquinas en gran escala; mientras que CDC produce su serie 7000 con el modelo 7600. Estas computadoras se caracterizan por ser muy potentes y veloces. Sistemas Contables Computarizados Página 27 Lenguajes de Programación A finales de esta década la IBM de su serie 370 produce los modelos 3031, 3033, 4341. Burroughs con su serie 6000 produce los modelos 6500 y 6700 de avanzado diseño, que se reemplazaron por su serie 7000. Honey - Well participa con su computadora DPS con varios modelos. A mediados de la década de 1970, aparecen en el mercado las computadoras de tamaño mediano, o minicomputadoras que no son tan costosas mainframes disponen como que de las grandes significa gran (llamadas también, capacidad de gran también como sistema), pero procesamiento. Algunas minicomputadoras fueron las siguientes: la PDP - 8 y la PDP 11 de Digital Equipment Corporation, la VAX (Virtual Address eXtended) de la misma compañía, los modelos NOVA y ECLIPSE de Data General, la serie 3000 y 9000 de Hewlett - Packard con varios modelos el 36 y el 34, La Wang y Honey - Well -Bull, Siemens de origen alemán, la ICL fabricada en Inglaterra. En la Unión Soviética se utilizó la US (Sistema Unificado, Ryad) que ha pasado por varias generaciones. Cuarta Generación Aquí aparecen los microprocesadores que es un gran adelanto de la microelectrónica, densidad y con microcomputadoras extremadamente son una con pequeñas circuitos velocidad base y en baratas, integrados de alta impresionante. estos circuitos por que lo su uso Las son se extiende al mercado industrial. Aquí nacen las computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada "revolución informática". Sistemas Contables Computarizados Página 28 Lenguajes de Programación En 1976 Steve Wozniak y Steve Jobs inventan la primera microcomputadora de uso masivo y más tarde forman la compañía conocida como la Apple que fue la segunda compañía más grande del mundo, antecedida tan solo por IBM; y esta por su parte es aún de las cinco compañías más grandes del mundo. En 1981 se vendieron 800 00 computadoras personales, al siguiente subió a 1 400 000. Entre 1984 y 1987 se vendieron alrededor de 60 millones de computadoras personales, por lo que no queda duda que su impacto y penetración han sido enormes. Con el surgimiento de las computadoras personales, el software y los sistemas que con ellas de manejan han tenido un considerable avance, porque han hecho más interactiva la comunicación con el usuario. Surgen otras aplicaciones como los procesadores de palabra, las hojas electrónicas de cálculo, paquetes gráficos, etc. También las industrias del Software de las computadoras personales crecen con gran rapidez, Gary Kildall y William Gates se dedicaron durante años a la creación de sistemas operativos y métodos para lograr una utilización sencilla de las microcomputadoras (son los creadores de CP/M y de los productos de Microsoft). No todo son microcomputadoras, minicomputadoras desarrollo. De y los hecho las grandes máquinas por supuesto, sistemas pequeñas las continúan en rebasaban por mucho la capacidad de los grandes sistemas de 10 o 15 años antes, que requerían de instalaciones costosas y especiales, pero sería equivocado suponer que las grandes computadoras han desaparecido; ineludible en por el contrario, prácticamente todas su las presencia esferas de era ya control gubernamental, militar y de la gran industria. Sistemas Contables Computarizados Página 29 Lenguajes de Programación Las enormes computadoras de las series CDC, CRAY, Hitachi o IBM por ejemplo, eran capaces de atender a varios cientos de millones de operaciones por segundo. Quinta Generación En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras. Surge la competencia internacional por el dominio del mercado de la computación, en la que se perfilan dos líderes que, sin embargo, no han podido alcanzar el nivel que se desea: la capacidad de comunicarse con la computadora en un lenguaje más cotidiano y no a través de códigos o lenguajes de control especializados. Japón lanzó en 1983 el llamado "programa de la quinta generación de computadoras", con los objetivos explícitos de producir máquinas con innovaciones reales en los criterios mencionados. Y en los Estados Unidos ya está en actividad un programa en desarrollo que persigue objetivos semejantes, que pueden resumirse de la siguiente manera: Procesamiento en paralelo mediante arquitecturas y diseños especiales y circuitos de gran velocidad. Manejo de lenguaje natural y sistemas de inteligencia artificial. El futuro previsible de la computación es muy interesante, y se puede atención esperar que prioritaria esta de ciencia gobiernos siga y de siendo la objeto de sociedad en conjunto. Sistemas Contables Computarizados Página 30 Lenguajes de Programación Lenguajes de programación orientada a objetos Los lenguajes de programación orientados a objetos tratan a los programas como conjuntos de objetos que se ayudan entre ellos para realizar acciones. Entendiendo como objeto al entidades que contienen datos. Permitiendo que los programas sean más fáciles de escribir, mantener y reutilizar. Los objetos tienen toda la información (atributos) que los diferencia de otros pertenecientes a otra clase. Por medio de unos métodos diferente objetos. se clase Esto comunican los produciendo el hace que a los objetos de cambio de objetos se una misma estado de les trate o los como unidades indivisibles en las que no se separan la información ni los métodos usados en su tratamiento. Los lenguajes de programación orientados a objetos tienen su origen en un lenguaje que fue diseñado por los profesores Ole-Johan Dahl y Kristen Nygaard en Noruega. Este lenguaje de programación orientado a objetos fue el “Simula 67” que fue un lenguaje creado para hacer simulaciones de naves. Los lenguajes de programación orientadas a objetos son lenguajes dinámicos en los que estos objetos se pueden crear y modificar sobre la marcha. Esta programación orientada a objetos (POO) tomo auge a mediados de los años ochenta debido a la propagación de las interfaces gráficas de usuarios, para lo que los lenguajes de programación orientados a objetos están especialmente dotados. Sistemas Contables Computarizados Página 31 Lenguajes de Programación Los principales lenguajes de programación orientados a objetos son: Ada, C++, C#, VB.NET, Clarion, Delphi, Eiffel, Java, Lexico (en castellano), Objective-C, Ocaml, Oz, PHP, PowerBuilder, Python, Ruby y Smalltalk. CONCEPTOS BÁSICOS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS La programación orientada a objetos es una nueva forma de programar que trata de encontrar la solución a problemas de una forma que ofrece muchas ventajas y facilidades que no se tenían anteriormente. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entro ellos destacan los siguientes: OBJETO: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad ("métodos"). Corresponden a los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). CLASE: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas. Una clase es una colección de objetos similares o la implementación, declaración o definición de un tipo de objeto. Cada vez que se construye un objeto de una clase se crea una instancia de esa clase. Por ejemplo en Visual Basic, se tiene la clase Form, y se pueden crear instancias de esa clase al tener Form1, Form2, etc. Así se está creando una instancia de la clase Form. Sistemas Contables Computarizados Página 32 Lenguajes de Programación MÉTODO: algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema. EVENTO: un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. MENSAJE: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. PROPIEDAD O ATRIBUTO: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto, y cuyo valor puede ser alterado por la ejecución de algún método. ESTADO INTERNO: es una propiedad invisible de los objetos, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). Sistemas Contables Computarizados Página 33 Lenguajes de Programación Lenguajes de Programación Orientado a Eventos Los lenguajes de programación orientados a eventos están especialmente indicados para aquellos que no tienen muchos conocimientos de los lenguajes de programación. Con este tipo de lenguaje de programación se consiguen en muy poco tiempo realizar sus propios programas utilizando interfaces gráficas gracias el efecto que producen una serie de eventos. Estos eventos ofrecen al usuario la posibilidad de realizar una serie de acciones encaminadas a crear un determinado preciso que actúen dos herramienta que programa. Para poder logar herramientas permite lenguaje a este de proceso conjuntamente. llevar desarrolla este cabo Una el proceso programación es sería entorno de la grafico programación. de alto nivel en Y que el la nos que se otra, un ayuda a codificar todos estos eventos. Con estas dos aplicaciones podemos desarrollar cualquier tipo de aplicación o programa que necesitemos. Dentro de los lenguajes de programación orientados a eventos tenemos que mencionar al Visual Basic. Este lenguaje de programación es uno de los que más adeptos tienen dentro de la programación. Este lenguaje nos permite crear en muy poco tiempo aplicaciones relativamente complejas. Es un lenguaje de cuarta generación, esto significa que una mayoría de las tareas que realizamos con el se consiguen sin escribir código. Lo logramos simplemente con operaciones gráficas que hacemos con el ratón sobre la pantalla de nuestra computadora. Sistemas Contables Computarizados Página 34 Lenguajes de Programación Con los lenguajes de programación orientados a eventos podemos crear programas que una vez en funcionamiento se quedan a la espera de determinadas acciones del usuario del programa, esto es lo que se conoce con el nombre de eventos. CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS Las características más importantes de la programación orientada a objetos son las siguientes: ABSTRACCIÓN: Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. ENCAPSULAMIENTO: también llamado "ocultación de la información". Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que específica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de modificación por quien no tenga un objeto contra su derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Sistemas Contables Computarizados Página 35 Lenguajes de Programación Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado característica o o propiedad rompecabezas de permite tanto por objetos. Esta ejecutar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos. POLIMORFISMO: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener invocación de objetos un de diferentes comportamiento en tipos, una y la referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Por ejemplo en Visual Basic, el polimorfismo se da al tener diferentes tipos de objetos (Form, Label, etc.) HERENCIA: las clases no están relacionan entre sí, aisladas, sino formando una que se jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento comportamiento. sin Esto tener suele que reimplementar hacerse su habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Sistemas Contables Computarizados Página 36 Lenguajes de Programación Cuando un objeto pertenece a más de una clase se dice que hay herencia múltiple; esta característica no está soportada por algunos lenguajes (como Java). Con esta propiedad, los objetos heredan comportamientos dentro de una jerarquía de clases. DIFERENCIA ENTRE LENGUAJE DE PROGRAMACION Y SISTEMA GESTOR DE BASE DE DATOS BASE DE DATOS: Es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico. EJEMPLOS DE SISTEMAS GESTORES DE BASES DE DATOS ACCESS Access es un programa comercial de la empresa Microsoft Corporation. Se trata de un sistema gestor de bases de datos diseñado para ser utilizado en computadoras personales. VISUAL FOX PRO Es un lenguaje estructurado en un entorno de desarrollo donde ciertas llamadas tareas son asignadas a Además, Fox ofrece un y fácil, incluso programas. información, bastante sencillo grupos de instrucciones acceso a de las personas sin experiencia en programación. Sistemas Contables Computarizados Página 37 Lenguajes de Programación VISUAL BASIC Visual-Basic es una herramienta de diseño de aplicaciones para Windows, en la que estas se desarrollan en una gran parte a partir del diseño de una interface gráfica. En una aplicación Visual - Basic, el programa está formado por una parte de código puro, y otras partes asociadas a los objetos que forman la interface gráfica. Es por tanto un término medio entre la programación tradicional, formada por una sucesión lineal de código estructurado, y la programación orientada a objetos. Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos de programación, debemos inventar una palabra que la defina: PROGRAMACIÓN VISUAL. LENGUAJE DE PROGRAMACION Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático que se le llama Programación. Sistemas Contables Computarizados Página 38 Lenguajes de Programación EJEMPLOS DE LENGUAJES DE PROGRAMACION Perl PHP Ruby Python Java Script, etc. LENGUAJES DE PROGRAMACIÓN MÁS COMUNES Visual Basic .NET Visual Basic .NET (VB.NET) es un lenguaje de programación orientado a objetos que se puede considerar una evolución de Visual Basic introducción implementada resultó muy sobre el framework controvertida, ya que .NET. Su debido a cambios significativos en el lenguaje VB.NET no es compatible hacia atrás con Visual Basic, pero el manejo de las instrucciones es similar a versiones anteriores de Visual Basic, facilitando así el desarrollo de aplicaciones más avanzadas con herramientas modernas. La gran mayoría de programadores de VB.NET utilizan el entorno de desarrollo integrado Microsoft Visual Studio en alguna de sus versiones (desde el primer Visual Studio .NET hasta Visual Studio .NET 2010, que es la última versión de Visual Studio para la plataforma .NET), aunque existen otras alternativas, como SharpDevelop (que además es libre). Al igual que con todos los lenguajes de programación basados en .NET, los programas escritos en VB .NET requieren el Framework .NET o Mono para ejecutarse. Sistemas Contables Computarizados Página 39 Lenguajes de Programación Java Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems en 1995. El lenguaje en sí mismo toma mucha de su sintaxis de C, Cobol y Visual Basic, pero tiene un herramientas de modelo bajo de objetos nivel, que más simple suelen y inducir elimina a muchos errores, como la manipulación directa de punteros o memoria. La memoria es gestionada mediante un recolector de basura. Las aplicaciones bytecode, Java aunque la están típicamente compilación en compiladas código máquina en un nativo también es posible. En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible. La implementación original y de referencia del compilador, la máquina virtual y las bibliotecas de clases de Java fueron desarrolladas por Sun Microsystems en 1995. Desde entonces, Sun ha controlado las especificaciones, el desarrollo y evolución del lenguaje a través del Java Community Process, si bien otros han desarrollado también implementaciones alternativas de estas tecnologías de Sun, algunas incluso bajo licencias de software libre. Entre diciembre de 2006 y mayo de 2007, Sun Microsystems liberó la mayor parte de sus tecnologías Java bajo la licencia GNU GPL, de acuerdo con las especificaciones del Java Community Process, de tal forma que prácticamente todo el Java de Sun es ahora software libre aunque la biblioteca de clases de paginas web comprendidas en las librerias de objetacion de objetos para ser compilados como aplicaciones Sistemas Contables Computarizados Página 40 Lenguajes de Programación comprimidas no están totalmente acopladas de acuerdo con Sun que dice que se requiere un interprete para ejecutar los programas de Java. Java ha sido probado, mejorado, ampliado y probado por una comunidad especializada de más de 9 millones de desarrolladores, la mayor y más activa del mundo. Gracias a su versatilidad, eficiencia y portabilidad, Java se ha convertido en un recurso inestimable ya que permite a los desarrolladores: Desarrollar software en una plataforma y ejecutarlo en prácticamente cualquier otra plataforma Crear programas para que funcionen en un navegador web y en servicios web Desarrollar aplicaciones para servidores como foros en línea, tiendas, encuestas, procesamiento de formularios HTML, etc. Combinar aplicaciones o servicios que usan el lenguaje Java para crear servicios o aplicaciones totalmente personalizados Desarrollar potentes y eficientes teléfonos móviles, procesadores aplicaciones para remotos, productos de consumo de bajo coste y prácticamente cualquier tipo de dispositivo digital Visual FoxPro Visual FoxPro es un lenguaje de programación procedural, orientado a objetos que posee un Sistema Gestor de Bases de datos o Database Management System (DBMS) y Sistema administrador de bases de datos relacionales, producido por Microsoft. Sistemas Contables Computarizados Página 41 Lenguajes de Programación Visual FoxPro ofrece a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web. Entre sus características se pueden enumerar: Capacidades para el manejar datos nativos y remotos. Flexibilidad para crear soluciones de bases de datos. Lenguaje de Programación Orientado a objetos. Utilización de Sentencias SQL en forma nativa. Manejo de vistas, cursores y control completo de estructuras relacionales. Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL Server o MySQL. Cuenta con un motor de generación de informes renovado y flexible para soluciones más robustas. Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reportes en formato XML. La última versión liberada es la 9.0. Esta cuenta con el SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características y especialmente brindan estabilidad al producto. Sistemas Contables Computarizados Página 42 Lenguajes de Programación LENGUAJES DE PROGRAMACIÓN PARA PAGINAS WEB HTML El HTML, Hyper Text Markup Language (Lenguaje de marcación de Hipertexto) es el lenguaje de marcas de texto utilizado normalmente en la www (World Wide Web). Fue creado en 1986 por el físico herramientas nuclear Tim Berners-Lee; prexistentes: El el concepto cual de tomo dos Hipertexto (Conocido también como link o ancla) el cual permite conectar dos elementos entre si y el SGML (Lenguaje Estándar de Marcación General) el cual sirve para colocar etiquetas o marcas en un texto que indique como debe verse. HTML no es propiamente un lenguaje de programación como C++, Visual Basic, etc., sino un sistema de etiquetas. HTML no presenta ningún compilador, por lo tanto algún error de sintaxis que se presente éste no lo detectará y se visualizara en la forma como éste lo entienda. El entorno para trabajar HTML es simplemente un procesador de texto, como el que ofrecen los sistemas operativos Windows (Bloc de notas), UNIX (el editor vi o ed) o el que ofrece MS Office (Word). El conjunto de etiquetas que se creen, se deben guardar con la extensión .htm o .html. Estos documentos pueden "browsers" de paginas Navigator, Mosaic, ser mostrados Web en Opera y Sistemas Contables Computarizados por Internet, Microsoft los como Internet visores o Netscape Explorer. Página 43 Lenguajes de Programación También existe el HTML Dinámico (DHTML), que es una mejora de Microsoft de la versión 4.0 de HTML que le permite crear efectos especiales como, por ejemplo, texto que vuela desde la página palabra por palabra o efectos de transición al estilo de anuncio publicitario giratorio entre página y página. DREAMWEAVER Dreamweaver es la herramienta de diseño de páginas web más avanzada, tal como se ha afirmado en muchos medios. Aunque sea un experto programador de HTML el usuario que lo maneje, siempre se encontrarán en este programa razones para utilizarlo, sobretodo en lo que a productividad se refiere. Cumple perfectamente el objetivo de diseñar páginas con aspecto profesional, y soporta gran cantidad de tecnologías, además muy fáciles de usar: Hojas de estilo y capas Javascript para crear efectos e interactividades Inserción de archivos multimedia... Además es un componentes, programa que que fabrica se tanto puede actualizar Macromedia como con otras compañías, para realizar otras acciones más avanzadas. En resumen, el programa es realmente satisfactorio, incluso el código generado es de buena calidad. La única pega consiste en que al ser tan avanzado, puede resultar un poco difícil su manejo para personas menos experimentadas en el diseño de webs. Sistemas Contables Computarizados Página 44 Lenguajes de Programación Dreamweaver ha evolucionado mucho en su versión 4, que incluye soporte para la creación de páginas dinámicas de servidor en ASP, con acceso a bases de datos (versión Ultradev) y una mayor integración con otras herramientas de Macromedia como Fireworks. PHP PHP es un lenguaje de programación generalmente usado en la programación de sitios web dinámicos y actualmente es casi el lenguaje de desarrollo de sitios más usado en todo el mundo. Fue originalmente creado por Rasmus Lerdorf para presentar su portafolio de Originalmente trabajo fue y otras desarrollado cosas en en perl. el año PHP al de 1994. principio significaba Personal Home Page pero con el tiempo como ya es desarrollado por otro grupo se llama PHP Hypertext preprocesor. Características del lenguaje PHP PHP es un lenguaje interpretado, solo se necesita un navegador web para ejecutarlo. Es un lenguaje del lado del servidor, por lo que los script se ejecutan remotamente y el resultado aparece en la máquina cliente (local). Tiene soporte para muchos tipos de bases de datos, entre las principales están MySQl, PostgreSQL, SQLite, entre otras. La sintaxis es parecida a la del lenguaje C (Que también tiene un parecido a perl). Es embebido en código HTML. No es case sensitive en cuánto a las funciones propias del lenguaje pero si en declaración de variables. Sistemas Contables Computarizados Página 45 Lenguajes de Programación Soporte de orientación a objetos. Posibilidades a realizar con PHP Potentes aplicaciones con manejo de base de datos. Formularios web o de envío de E-mails. Foros y libros de visita. Puedes construir aplicaciones dinámicas como algunas conocidas: Facebook, Google, YouTube, Twitter de manera fácil y rápida. LENGUAJES DE PROGRAMACIÓN PARA TABLET Objective-C Objective-C objetos es creado un lenguaje como un de programación superconjunto de orientado C para a que implementase un modelo de objetos parecido al de Smalltalk. Originalmente fue creado por Brad Cox y la corporación StepStone en 1980. En 1988 fue adoptado como lenguaje de programación de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC. Actualmente se usa como lenguaje principal de programación en Mac OS X, iOS y GNUstep. El iOS es la plataforma utilizada para programar aplicaciones para iPhone o iPad cuyo lenguaje es Objective C. C/C++ C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitieran la manipulación de objetos. Sistemas Contables Computarizados Página 46 Lenguajes de Programación En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, Posteriormente se el C++ añadieron es un lenguaje facilidades de híbrido. programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma. Los Black Berry utilizan en sus móviles el lenguaje Java, mientras que para Tablet OS, el lenguaje es C/C++. ARCHIVO EJECUTALE En Informática, un ejecutable o archivo ejecutable, es un archivo binario cuyo contenido e interpreta por la computadora como un programa. máquina Generalmente, de un contiene procesador en instrucciones concreto, pero en código también puede contener bytecode que requiera un intérprete para ejecutarlo. Además suele contener llamadas a funciones específicas de un sistema operativo (llamadas al sistema) Archivos EXE El formato de archivos EXE fue introducido en marzo de 1983, en la versión actualidad. Las 2.0de MS-DOS capacidades y sigue siendo del formato utilizado EXE en la fueron evolucionando al paso de los años para adecuarse a las nuevas necesidades del mundo del software y a las nuevas posibilidades que abrían los hardwares más recientes. Existen dos formas de crear un archivo de tipo EXE. Una es usando un compilador que pueda crear este tipo de archivos. La otra forma es ensamblando un código Sistemas Contables Computarizados Página 47 Lenguajes de Programación fuente del lenguaje Assembler y luego enlazando el código objeto resultante de la tarea anterior. Diferencias entre .COM y.EXE La principal diferencia es que el formato EXE no restringe el tamaño del ejecutable, en cambio el COM está restringido como máximo a ocupar un solo segmento de memoria (un espacio de memoria de 64 Kb) Sistemas Contables Computarizados Página 48 CONCLUSIÓN Los lenguajes de programación no son simplemente un detalle más del amplio mundo de la informática, y por lo tanto deben ser vistos como el fundamento y la base del desarrollo y avance de la computación. Estudiar los conceptos básicos, clasificación, diferencias, propiedades y funcionamiento de los lenguajes de programación es elemental para cualquier estudiante o profesional. Luego del desarrollo de este trabajo nos resulta más fácil comprender los tipos y la clasificación que se les da a los lenguajes de programación en base a sus funcionalidades y características. Página iii BIBLIOGRAFIA http://es.kioskea.net/contents/langages/langages.php3 http://jorgesaavedra.wordpress.com/2007/05/05/lenguajesde-programacion/ http://catedraprogramacion.foroactivo.net/t83definicion-de-lenguaje-de-programacion-tipos-ejemplos http://es.scribd.com/doc/6291235/Archivos-Ejecutables http://www.youtube.com/watch?v=E3NqKNMnCeE Página iv