Lenguaje de programación.docx

9
Lenguaje de programación Un lenguaje de programación es un idioma artifcial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquin como las computadoras. Pueden usarse para crear programas que controlen el comportamiento ísico y lógico de una máquina para expresar algoritmos con precisión o como modo de comunicación !umana." #stá ormado por un conjunto de símbolos y reglas sintá semánticas que defnen su estructura y el signifcado de sus eleme expresiones. $l proceso por el cual se escribe se prueba se de compila y se mantiene el código uente de un programa inormátic llama programación. %ambi&n la palabra programación se defne como el proceso de cre de un programa de computadora mediante la aplicación de procedimientos lógicos a trav&s de los siguientes pasos' #l desarrollo lógico del programa para resolver un problema en particular. #scritura de la lógica del programa empleando un lenguaje de programación específco (codifcación del programa). #nsamblaje o compilación del programa !asta convertirlo en len de máquina. Prueba y depuración del programa. *esarrollo de la documentación. Permite especifcar de manera precisa sobre qu& datos debe operar computadora cómo deben ser almacenados o transmitidos y qu& acciones debe tomar bajo una variada gama de circunstancias. %od a trav&s de un lenguaje que intenta estar relativamente próximo lenguaje !umano o natural. Una característica relevante de los l de programación es precisamente que más de un programador pueda usar un conjunto com+n de instrucciones que sean comprendidas en ellos para reali,ar la construcción de un programa de orma cola

description

informatica

Transcript of Lenguaje de programación.docx

Lenguaje de programacinUn lenguaje de programacin es un idioma artificial diseado para expresar computaciones que pueden ser llevadas a cabo por mquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana.1 Est formado por un conjunto de smbolos y reglas sintcticas y semnticas 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 cdigo fuente de un programa informtico se le llama programacin.Tambin la palabra programacin se define como el proceso de creacin de un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los siguientes pasos: El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de programacin especfico (codificacin del programa). Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin.Permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un programador pueda usar un conjunto comn de instrucciones que sean comprendidas entre ellos para realizar la construccin de un programa de forma colaborativa.

Desventajas de lenguajes de programacin Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y 'lenguaje informtico'. Los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como por ejemplo HTML (lenguaje para el marcado de pginas web que no es propiamente un lenguaje de programacin, sino un conjunto de instrucciones que permiten disear el contenido de los documentos).La ejecucin del programa por medio de un intrprete es usualmente mucho menos eficiente que la ejecucin de un programa compilado. No es eficiente en tiempo porque, o cada instruccin debe pasar por una interpretacin en tiempo de ejecucin, o como en ms recientes implementaciones, el cdigo tiene que ser compilado a una representacin intermedia antes de cada ejecucin. La mquina virtual es una solucin parcial al problema de la eficiencia del tiempo pues la definicin del lenguaje intermedio es mucha ms cercana al lenguaje de mquina y por lo tanto ms fcil de ser traducida en tiempo de ejecucin. Otra desventaja es la necesidad de un intrprete en la mquina local para poder hacer la ejecucin posible.Ventajas de los lenguajes interpretadosLos lenguajes interpretados dan a los programas cierta flexibilidad adicional sobre los lenguajes compilados. Algunas caractersticas que son ms fciles de implementar en intrpretes que en compiladores incluyen, pero no se limitan, a:

Independencia de plataforma (por ejemplo el byte code de Java) Reflexin y uso reflexivo del evaluador (ej. una funcin eval de primer orden) Tipos Dinmicos Facilidad en la depuracin (es ms fcil obtener informacin del cdigo fuente en lenguajes interpretados) Pequeo tamao del programa (puesto que los lenguajes interpretados tienen flexibilidad para elegir el cdigo de instruccin) mbito dinmico Gestin de memoria automticaProgramacin estructuradaLa programacin estructurada es una tcnica para escribir programas (programacin de computadora) de manera clara. Para ello se utilizan nicamente tres estructuras: secuencia, seleccin e iteracin; siendo innecesario el uso de la instruccin o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o mltiples RETURN).Hoy en da las aplicaciones informticas son mucho ms ambiciosas que las necesidades de programacin existentes en los aos 1960, principalmente debido a las aplicaciones grficas, por lo que las tcnicas de programacin estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas tcnicas, tales como la programacin orientada a objetos y el desarrollo de entornos de programacin que facilitan la programacin de grandes aplicaciones.Programacin Estructurada es una tcnica en la cual la estructura de un programa, esto es, la interpelacin de sus partes realiza tan claramente como es posible mediante el uso de tres estructuras lgicas de control:Secuencia: Sucesin simple de dos o mas operaciones. Seleccin: bifurcacin condicional de una o mas operaciones. Interaccin: Repeticin de una operacin mientras se cumple una condicin.Estos tres tipos de estructuras lgicas de control pueden ser combinados para producir programas que manejen cualquier tarea de procesamiento de informacin.Un programa estructurado est compuesto de segmentos, los cuales puedan estar constituidos por unas pocas instrucciones o por una pgina o ms de codificacin. Cada segmento tiene solamente una entrada y una salida, estos segmentos, asumiendo que no poseen lazos infinitos y no tienen instrucciones que jams se ejecuten, se denominan programas propios. Cuando varios programas propios se combinan utilizando las tres estructuras bsicas de control mencionadas anteriormente, el resultado es tambin un programa propio.La programacin Estructurada est basada en el Teorema de la Estructura, el cual establece que cualquier programa propio (un programa con una entrada y una salida exclusivamente) es equivalente a un programa que contiene solamente las estructuras lgicas mencionadas anteriormenteUna caracterstica importante en un programa estructurado es que puede ser ledo en secuencia, desde el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa, lo contrario de lo que ocurre con otros estilos de programacin. Esto es importante debido a que, es mucho ms fcil comprender completamente el trabajo que realiza una funcin determinada, si todas las instrucciones que influyen en su accin estn fsicamente contiguas y encerradas por un bloque. La facilidad de lectura, de comienzo a fin, es una consecuencia de utilizar solamente tres estructuras de control y de eliminar la instruccin de desvo de flujo de control, excepto en circunstancias muy especiales tales como la simulacin de una estructura lgica de control en un lenguaje de programacin que no la posea.Ventajas de la programacin estructurada1. Los programas son ms fciles de entender, pueden ser ledos de forma secuencial, no hay necesidad de hacer engorrosos seguimientos en saltos de lnea (GOTO) dentro de los bloques de cdigo para intentar entender la lgica.2. La estructura de los programas es clara, puesto que las instrucciones estn ms ligadas o relacionadas entre s.3. Reduccin del esfuerzo en las pruebas y depuracin. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a su estructura ms sencilla y comprensible, por lo que los errores se pueden detectar y corregir ms fcilmente.4. Reduccin de los costos de mantenimiento. Anlogamente a la depuracin, durante la fase de mantenimiento, modificar o extender los programas resulta ms fcil.5. Programas son ms sencillos y ms rpidos de confeccionar (y se facilita su optimizacin).6. Los bloques de cdigo son casi auto-explicativos, lo que reduce y facilita la documentacin.7. Las instrucciones de salto, GOTO, quedan reservadas para construir las instrucciones bsicas, si fuera realmente imprescindible. Aunque no se usan de forma directa, por estar prohibida su utilizacin, estn incluidas implcitamente en las instrucciones de seleccin e iteracin.8. Un programa escrito de acuerdo a los principios de programacin estructurada no solamente tendr una mejor estructura sino tambin una excelente presentacin.9. Se incrementa el rendimiento de los programadores, comparada con la forma tradicional que utiliza GOTO.La programacin estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, esencialmente, una tarea de dedicacin, esfuerzo y creatividad; programar es casi un arte.

Inconvenientes de la programacin estructuradaEl principal inconveniente de este mtodo de programacin es que se obtiene un nico bloque de programa, que cuando se hace demasiado grande puede resultar problemtico el manejo de su cdigo fuente; esto se resuelve empleando conjuntamente la programacin modular, es decir, si es necesario, se definen mdulos independientes, programados y compilados por separado (en realidad esto no es necesario, pero s es recomendable para su mejor mantenimiento y depuracin).En realidad, cuando se programa hoy en da (inicios del siglo XXI) se utilizan normalmente, tanto las tcnicas de programacin estructurada como las de programacin modular, de forma conjunta y por lo tanto es muy comn que cuando se hace referencia a la programacin estructurada muchos entiendan que ella incluye tambin las tcnicas modulares, estrictamente no es as.Un mtodo un poco ms sofisticado es la programacin por capas, en la que los mdulos tienen una estructura jerrquica en la que se pueden definir funciones dentro de funciones o de procedimientos.Si bien las metodologas en cuestin ya son de antigua data ("en plazos informticos"), aun en la actualidad la conjuncin "Programacin estructurada" y "programacin modular" es una de la ms utilizadas, juntamente con un ms moderno paradigma, en pleno auge, completamente distinto, llamado programacin orientada a objetos.

Programacin orientada a objetos La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un paradigma de programacin que usa objetos y sus interacciones, para disear aplicaciones y programas informticos. Est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y encapsulamiento. Su uso se populariz a principios de la dcada de los aos 1990. En la actualidad, existe variedad de lenguajes de programacin que soportan la orientacin a objetos.IntroduccinLos objetos son entidades que tienen un determinado estado, comportamiento (mtodo) e identidad: El estado est compuesto de datos, ser uno o varios atributos a los que se habrn asignado unos valores concretos (datos). El comportamiento est definido por los mtodos o mensajes a los que sabe responder dicho objeto, es decir, qu operaciones se pueden realizar con l. La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto anlogo al de identificador de una variable o una constante).Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interaccin llamados mtodos, que favorecen la comunicacin entre ellos. Esta comunicacin favorece a su vez el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.Los mtodos (comportamiento) y atributos (estado) estn estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de mtodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podra producir el hbito errneo de crear clases contenedoras de informacin por un lado y clases con mtodos que manejen a las primeras por el otro. De esta manera se estara realizando una programacin estructurada camuflada en un lenguaje de programacin orientado a objetos.La POO difiere de la programacin estructurada tradicional, en la que los datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programacin estructurada anima al programador a pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programacin estructurada solo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitndoles que realicen sus mtodos por s mismos.Lenguajes orientados a objetosSimula (1967) es aceptado como el primer lenguaje que posee las caractersticas principales de un lenguaje orientado a objetos. Fue creado para hacer programas de simulacin, en donde los "objetos" son la representacin de la informacin ms importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo cannico, y con el que gran parte de la teora de la programacin orientada a objetos se ha desarrollado.Entre los lenguajes orientados a objetos se destacan los siguientes: ABAP -> SAP Lenguaje orientado a eventos ABL Lenguaje de programacin de OpenEdge de Progress Software ActionScript ActionScript 3 Ada C++ C# Clarion Clipper (lenguaje de programacin) (Versin 5.x con librera de objetos Class(y)) D Object Pascal (Embarcadero Delphi) Gambas Harbour Eiffel Java JavaScript (la herencia se realiza por medio de la programacin basada en prototipos) Lexico (en castellano) Objective-C Ocaml Oz R Perl (soporta herencia mltiple. La resolucin se realiza en preorden, pero puede modificarse al algoritmo linearization C3 por medio del mdulo Class::C3 en CPAN) PHP (a partir de su versin 5) PowerBuilder Python Ruby Smalltalk (Entorno de objetos puro) Magik (SmallWorld) Vala VB.NET Visual FoxPro (en su versin 6) Visual Basic 6.0 Visual DataFlex Visual Objects XBase++ Lenguaje DRP Lenguaje de programacin Scala (lenguaje usado por Twitter) Muchos de estos lenguajes de programacin no son puramente orientados a objetos, sino que son hbridos que combinan la POO con otros paradigmas.Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados aadiendo extensiones orientadas a objetos a un lenguaje de programacin clsico.Un nuevo paso en la abstraccin de paradigmas de programacin es la Programacin Orientada a Aspectos (POA). Aunque es todava una metodologa en estado de maduracin, cada vez atrae a ms investigadores e incluso proyectos comerciales en todo el mundo.