Anda di halaman 1dari 66

Lenguaje RAPID. (Robotics Application Programming Interactivo Dialogue).

RAPID es un lenguaje de programación textual de alto nivel desarrollado por la empresa ABB. Una aplicación RAPID consta de un programa y una serie de módulos del sistema. El programa es una secuencia de instrucciones que controlan el robot y en general consta de tres partes:

Una rutina principal (main): Rutina donde se inicia la ejecución. Un conjunto de sub-rutinas: Sirven para dividir el programa en partes más pequeñas a fin de obtener un programa modular. Los datos del programa: Definen posiciones, valores numéricos, sistemas de coordenadas, etc.

Lenguaje RAPID. ( R obotics A pplication P rogramming I nteractivo D ialogue). RAPID es un

Elementos básicos . Identificadores:

Lenguaje RAPID. ( R obotics A pplication P rogramming I nteractivo D ialogue). RAPID es un

Permiten nombrar módulos, rutinas, datos y etiquetas. Ejemplo:

  • - El primer carácter es siempre una letra.

  • - Longitud máxima 16.

  • - Diferencia entre mayúsculas y minúsculas.

Espacios y caracteres de fin de línea:

MODULE nombre_módulo PROC nomre_rutina() VAR pos nombre_dato;nombre_etiqueta:

RAPID es un lenguaje sin formatos, en consecuencia los espacios pueden utilizarse en cualquier parte excepto en: identificadores, palabras reservadas, valores numéricos. Los identificadores, las palabras reservadas y los valores numéricos deberán estar separados entre sí por un espacio, un carácter de fin de línea o un tabulador.

Comentarios:

Sirven para facilitar la comprensión del programa, ocupan una línea entera comenzando

con el símbolo “!” finaliza con un carácter de fin de línea.

! Esto es un comentario

Valores de cadena:

Secuencia de caracteres entre comillas: “Esto es una cadena” Expresiones del lenguaje

Lógicas: Devuelven un valor de tipo bool Utilizan los operadores lógicos: <, >, <>, =, <=, >=, AND, OR, NOT, XOR. Ejemplo:

DInput(di1) = 1 Doutput(do3) = 0 num1 < num2; nombre1 = nombre2; Doutput(do1) = 0 AND pos1.x > 100.

Lenguaje PROLOG. (PROgrammation LOGique) Introducido por Universidad de Aix-Marseille (Marsella, Francia) por los profesores Alain Colmerauer y Philippe Roussel al inicio de '70. Es un lenguaje de programación de paradigma declarativo por el uso de toda la gente que trabaja en el campo de la Inteligencia Artificial (lingüistas). Es muy simple para aprender y manejar. Inicialmente se trataba de un lenguaje totalmente interpretado hasta que, en 1983, David H.D. Warren desarrolló un compilador capaz de traducir Prolog en un conjunto de instrucciones de una máquina abstracta denominada Warren Abstract Machine, o abreviadamente, WAM. Desde entonces Prolog es un lenguaje semi-interpretado.

Sintaxis de PROLOG

Constantes: numero (enteros o con punto _otante), cadenas de caracteres con

minúsculas, cadenas de caracteres entre

_.

Ejemplos: 2.5, 6, _la vida_, lavida, pedro,

instalación. Variables: una cadena de caracteres que empieza con una mayúscula o con (guillon bajo). Ejemplos : X, Xxx, Pero, , 33. Un programa PRLOG se compone de una parte de hechos y una parte de reglas. Un hecho es la modelización de los datos/situaciones elementales que se consideran ciertos. Un hecho es un término que tiene todos sus parámetros constantes o evaluables directamente.

Ejemplos:

madre (ana , pedro ). gato ( tom ). come (tom , jerry ). esnumero (34343).

PROLOG no está un lenguaje completo de programación lógica, sino un lenguaje que intenta la resolución de las interrogaciones según las reglas siguientes:

Primero se examina los hechos

Luego se intenta la aplicación de la reglas de la primera con El factor indicado hasta la

última con este factor. Se aplica un método de back tracking el caso de fracaso (a saber, no se puede decidir

nada y no hay otra opción) Una interrogación sin respuesta se interpreta como falsa.

El programa PROLOG siguiente:

hermano (pablo , ana ). hermano (pablo , maria ). hermano (X,Y):- hermano (Y,X). hermano (X,Z):- hermano (X,Y), hermano (Y,Z).

Expresiones

PROLOG cuenta con operadores para la unificación y comparación, sea con evaluación o

sea simbólica, como los siguientes:

X is Y %unificación con evaluación.

X = Y %unificación simbólica

X=:=Y %comparación con evaluación

X == Y %comparación simbólica.

Listas

La lista es una estructura de datos muy utilizada en la programación non-numérica. Es un conjunto ordenado de elementos y puede tener cualquier dimensión.

Una lista vacía: []

Una lista con variables [X, 1, 2, Y].

Lenguaje APL

Año: 1961

Lugar: Estados Unidos Creador: Ken Iversen

 

Definición:

APL

es

un

lenguaje

de

programación

interpretado que recibe

su

nombre

de

A

Programing

Language, también

conocido

como

Array

Processing

Language desde hace algunos años.

Listas La lista es una estructura de datos muy utilizada en la programación non-numérica. Es unKen Iversen Definición : APL es un lenguaje de programación interpretado que recibe su nombre de A Programing Language, también conocido como Array Processing Language desde hace algunos años. Uso : Su uso está orientado a trabajos con matrices, con la que se pueden hacer todo tipo de operaciones lógicas o matemáticas. Incluso se pueden definir nuevas operaciones matriciales. Se considera un buen lenguaje para el desarrollo de prototipos, pues al ser tan conciso, es un lenguaje que permite un ciclo de desarrollo muy veloz, y también al ser interpretado, la velocidad de ejecución es típicamente más lenta que la de los lenguajes de programación compilados. Este lenguaje de programación fue usado para el sistema Deep Blue de IBM que venció a Kasparov al ajedrez, y su uso para hacer los efectos especiales en la película Tron de Walt Disney. Su potencia es la mejor de sus armas, y podríamos decir que es espectacular, pues una sola sentencia puede traducirse en miles de ellas en otros lenguajes, como por ejemplo Fortran. Tiene la propiedad de que desde una rutina se puede crear, compilar y ejecutar, en tiempo de ejecución, otras, lo que lo hace muy apropiado para la fabricación de compiladores e intérpretes. La pero parte de este lenguaje es que no usa la notación ASCII en concreto, pues existen muchos más símbolos, sobre todo letras griegas para el desarrollo de los programas, por lo tanto es preciso tener un teclado especial para poder usarlo. APL ha sido criticado, en cambio, por su falta de legibilidad, lo que hace difícil modificar programas antiguos (se le ha llamado, irónicamente, write-only language ). Otro defecto importante deriva del uso de símbolos propios (letras griegas y otros caracteres aún menos convencionales), lo que, además de dificultar la escritura (al no aparecer en los teclados normales), hace que el código sea poco portable, ya que cada versión concreta de APL almacena a su modo el código fuente (y eso aparte de las habituales diferencias de una implementación a otra). El propio Iverson, junto con Roger Hui, ha creado un nuevo lenguaje (J), derivado de APL, que usa sólo caracteres ASCII. Aplicaciones del APL Como ejemplo muy sencillo: APL puede resolver un sistema de ecuaciones en una sola sentencia. Si lo aplicamos a un sistema de ecuaciones concreto: 7x + 4y + 2z = 4 6x + 8y + 9z = 7 4x + 2y + 1z = 2 " id="pdf-obj-2-84" src="pdf-obj-2-84.jpg">

Uso: Su uso está orientado a trabajos con matrices, con la que se pueden hacer todo tipo de operaciones lógicas o matemáticas. Incluso se pueden definir nuevas operaciones matriciales. Se considera un buen lenguaje para el desarrollo de prototipos, pues al ser tan conciso, es un lenguaje que permite un ciclo de desarrollo muy veloz, y también al ser interpretado, la velocidad de ejecución es típicamente más lenta que la de los lenguajes de programación compilados.

Este lenguaje de programación fue usado para el sistema Deep Blue de IBM que venció a Kasparov al ajedrez, y su uso para hacer los efectos especiales en la película Tron de Walt Disney. Su potencia es la mejor de sus armas, y podríamos decir que es espectacular, pues una sola sentencia puede traducirse en miles de ellas en otros lenguajes, como por ejemplo Fortran. Tiene la propiedad de que desde una rutina se puede crear, compilar y ejecutar, en tiempo de ejecución, otras, lo que lo hace muy apropiado para la fabricación de compiladores e intérpretes. La pero parte de este lenguaje es que no usa la notación ASCII en concreto, pues existen muchos más símbolos, sobre todo letras griegas para el desarrollo de los programas, por lo tanto es preciso tener un teclado especial para poder usarlo.

APL ha sido criticado, en cambio, por su falta de legibilidad, lo que hace difícil modificar programas antiguos (se le ha llamado, irónicamente, write-only language). Otro defecto importante deriva del uso de símbolos propios (letras griegas y otros caracteres aún menos convencionales), lo que, además de dificultar la escritura (al no aparecer en los teclados normales), hace que el código sea poco portable, ya que cada versión concreta de APL almacena a su modo el código fuente (y eso aparte de las habituales diferencias de una implementación a otra). El propio Iverson, junto con Roger Hui, ha creado un nuevo lenguaje (J), derivado de APL, que usa sólo caracteres ASCII.

Aplicaciones del APL

Como ejemplo muy sencillo: APL puede resolver un sistema de ecuaciones en una sola sentencia. Si lo aplicamos a un sistema de ecuaciones concreto:

7x + 4y + 2z = 4

6x + 8y + 9z = 7

4x + 2y + 1z = 2

Basta ejecutar UNA UNICA sentencia de APL, cuya sintaxis es:

4

7

2

[÷]

3 3

ρ 7

4

2

6

8

9

4

2

1

Para obtener inmediatamente el valor resultado para cada variable (x, y, z):

0 1.1 -0.2.

Tiene la propiedad de que desde una rutina se pueden (en tiempo de ejecución) crear, compilar y ejecutar, otras rutinas, lo que lo hace tambien muy apropiado para la elaboración automática de compiladores e intérpretes. Algunas dificultades (poco importantes), radican en que:

  • 1. Necesita pegatinas (o marcar con rotulador permanente) en el teclado, para poder ver los operadores (símbolos propios de APL) que se asignan a cada tecla (pueden redefinirse por el usuario cuando y como guste).

  • 2. Los programas escritos en APL son muy concisos y ello puede hacer que sean prolijos de documentar y de comprender para los principiantes.

  • 3. Al ser interpretado (en tiempo de ejecución), su velocidad es típicamente algo más lenta que la de las aplicaciones con lenguajes de programación compilados. Ello, hoy en dia, con las grandes velocidades de los procesadores, no supone una desventaja apreciable, en la mayor parte de las aplicaciones. Por contra, facilita su prueba y revisión interactiva inmediata.

Lenguaje J

Es un nuevo dialecto de APL, también creado por Ken Iverson. Se puede descargar gratuitamente, aunque para usarlo como programador hace falta una clave de usuario (la envían gratuitamente por correo electrónico después de rellenar un pequeño formulario). Hay versiones para Windows, MacOS X, Linux y otros sistemas operativos. Se distribuye con una amplia documentación (también disponible en el sitio).

El lenguaje de programación J, diseñado por Kenneth Iverson y Roger Hui en los '90, es una síntesis de los lenguajes de programación APL (diseñado también por Iverson) y los lenguajes funcionales FP y FL creados por John Backus (famoso por FORTRAN, ALGOL y BNF).

Para eliminar el problema generado por el uso de un juego de caracteres especiales en APL, J sólo requiere el juego de caracteres básicos ASCII. Se usan tanto el punto como los dos puntos para extender el significado del juego de caracteres disponible. Dado que se trata de un lenguaje de programación de array, J es muy conciso y potente, y es útil para crear programas en los campos de las matemáticas y de la estadística, especialmente cuando involucran operaciones con matrices. A diferencia de muchos lenguajes que soportan la programación orientada a objetos, el flexible esquema de espacio de nombres jerárquico del lenguaje J (donde cada nombre existe en un ámbito particular) puede ser usado con efectividad como un marco de trabajo para realizar programación orientada a objetos basada tanto en clases, como en instancias. Nótese que el lenguaje de programación J no está relacionado con J++, ni su nueva versión J# (una versión propietaria del Lenguaje de programación Java desarrollada por Microsoft).

J es particularmente fuerte en el análisis matemático, estadístico y lógico de los datos. Es una potente herramienta en construcción nueva y mejores soluciones a problemas antiguos e incluso mejor en la búsqueda de soluciones donde el problema no es ya bien conocido. J los sistemas tienen:

un entorno de desarrollo integrado

paquetes de utilidades y bibliotecas estándar

consola, navegador y extremos delanteros Qt

interfaces con otros lenguajes de programación y aplicaciones

gráficos integrados

memoria asignada de archivos para aplicaciones de datos de alto rendimiento

JD

"Si usted está interesado en programación de soluciones a los difíciles problemas de procesamiento de datos, entonces el tiempo que invertir en el aprendizaje de J se se bien pasado".

J es un lenguaje de programación extremadamente potente, y sus programas pueden ser

muy tersos, pero incluso más crípticos. El programa 'Hola Mundo' en J es:

'Hola Mundo'

Esta implementación de 'Hola Mundo' refleja el uso tradicional de J -- los programas son introducidos durante unasesión del intérprete J, y los resultados de las expresiones se muestran de modo interactivo. También es posible hacer que scripts en J se puedan ejecutar como programas independientes, pero los mecanismos usados para asociar el script con el intérprete son dependientes del sistema. En un sistema Unix, se podría hacer como sigue:

#!/bin/jc echo 'Hello, world!' exit ''

Lenguaje ActionScript

El ActionScript es un lenguaje de programación que crea Script (conjunto de instrucciones de un programa) de Flash, con el que crear películas con elementos interactivos. El Flash es un programa para crear animaciones vectoriales para páginas web. El ActionScript nos ayuda a crear una película en la que el usuario pueda hacer por ejemplo un clic con el ratón o presionar una tecla, entonces se ejecuta un determinado Script. Como podría ser que se cargue otra película. El ActionScript quiere conseguir que estas películas se comporten exactamente como el usuario determine. Para conseguir que las películas se comporten como el usuario quiere no es necesario entender todos los posibles usos de esta herramienta de creación de Script. Si partimos de un objetivo claro podemos empezar a crear Script con acciones sencillas para posteriormente incluir nuevas instrucciones a medida que las vayamos aprendiendo a utilizar. El ActionScript es un lenguaje de programación para la creación de Script orientado a objetos. Lo que significa que cuando se dan determinados eventos (por ejemplo un clic del ratón), se producen unas determinadas acciones.

Para comenzar a crear Script no es necesario tener un conocimiento amplio del ActionScript. Por ejemplo algo sencillo sería crear un Script que se lo asignamos a un botón con el que queremos que al ser presionarlo nos cambie el brillo de un clip de película. Con el ActionScript también podemos cambiar el color, aumentar o reducir el volumen del sonido, etc. Pero estas son algunas, las posibilidades que tiene este lenguaje de programación en este campo son muy amplias.

Estructura Flash está compuesto por objetos, con su respectiva ruta dentro del swf. Cada uno de éstos en ActionScript pertenece a una clase (MovieClip, botones, Vectores (Arrays), etc.), que contiene Propiedades y Métodos o Funciones. Propiedades: Dentro del archivo raíz de la clase, están declaradas como variables (alpha,

useHandCursor, length,

...

Métodos o Funciones: Dentro del archivo raíz de la clase, están declaradas como funciones

(stop(), gotoAndPlay(), getURL(),

...

).

ActionScript 3

ActionScript 3.0 ofrece un modelo de la programación robusto que resultará familiar a los desarrolladores con conocimientos básicos sobre programación orientada a objetos. Algunas de las principales funciones de ActionScript 3.0 son:

Una nueva máquina virtual ActionScript, denominada AVM2, que utiliza un nuevo conjunto de instrucciones de código de bytes y proporciona importantes mejoras de rendimiento.

Una base de código de compilador más moderna, que se ajusta mejor al estándar ECMAScript (ECMA 262) y que realiza mejores optimizaciones que las versiones anteriores del compilador.

Una interfaz de programación de aplicaciones (API) ampliada y mejorada, con un control de bajo nivel de los objetos y un auténtico modelo orientado a objetos.

Un núcleo del lenguaje basado en el próximo borrador de especificación del lenguaje ECMAScript (ECMA-262) edición 4.

Una API XML basada en la especificación de ECMAScript para XML (E4X) (ECMA- 357 edición 2). E4X es una extensión del lenguaje ECMAScript que añade XML como un tipo de datos nativo del lenguaje.

Un modelo de eventos basado en la especificación de eventos DOM(modelo de objetos de documento)de nivel 3.

Mientras que en ActionScript 2.0, las anotaciones de tipos eran principalmente una ayuda para el desarrollador; en tiempo de ejecución, se asignaban los tipos dinámicamente a todos los valores. En ActionScript 3.0, la información de tipos se conserva en tiempo de ejecución y se utiliza con diversos fines. Flash Player 9 realiza la comprobación de tipos en tiempo de ejecución, lo que mejora la seguridad de tipos del sistema. La información de tipos también se utiliza para especificar variables en representaciones nativas de la máquina, lo que mejora el rendimiento y reduce el uso de memoria.

Lenguaje Erlang.

Es un lenguaje funcional y de programación concurrente, fue diseñado por la compañía Ericsson con el propósito de hacer aplicaciones que puedan soportar fallos, funcionamiento ininterrumpido, aplicaciones distribuidas, entre otras cosas.

Tiene una característica muy importante "el cambio de código en caliente" el cual se refiere a poder modificar el código aun cuando la aplicación está corriendo. Erlang no seguía la filosofía de código abierto hasta 1998 cuando Ericsson lo cedió como tal. Erlang es un lenguaje interpretado, aunque también se puede compilar usando el compilador HiPE, aunque este compilador solo es para algunas plataformas es muy bueno porque pude soportar la concurrencia característica muy distintiva del lenguaje. Esta es la página oficial de HiPE.

Es posible que pensemos que entender este proceso de concurrencia es complicado y más aún aplicarlo en algún programa pero en Erlang la concurrencia es explicita y no implícita con en otros lenguajes. El nombre de Erlang viene de las palabras Ericsson y Language.

Erlang lenguaje funcional

Los programa en Erlang están compuestos de bloques "funciones" y las identificamos por su nombre y el numero de argumentos de entrada también llamado "aridad". Por ejemplo las funciones multiplicacion/2, multiplicacion/3, multipicacion/4 pueden existir perfectamente juntas y llamándose a cada una según el numero de datos que se introduzca por el usuario, los resultados que devuelven las funcione son puede ser de cualquier elemento soportado por Erlang flotante, tupla, entero, lista, etc.

mi_funcion(dato1, dato2, instrucción, instrucción, resultado_a_devolver

...

) ->

También podemos escribir alguna condición antes de ">" podemos poner que si se cumple algo entonces se lleve a cabo determinada instrucción esto lo hacemos con "when" una forma de implementarlo sería:

mi_funcion(dato1, dato2) when dato1 > 0 -> Y algo muy importante en Erlang aprender a escribir el ".".

Hice un programa en Erlang que muestra su característica como lenguaje funcional, bueno primero que nada abro el terminal y escribo:

cecy@cecy-desktop:~$ emacs -nw geom.erl

Las características más destacadas de Erlang son:

Lenguaje funcional Soporte de concurrencia Tolerancia a fallas Cambio de código en caliente Posibilidad de conectar con código C, Java y otros lenguajes

La concurrencia es una característica importantísima del lenguaje fue creada especialmente para las aplicaciones de telecomunicaciones: gran disponibilidad, cambiar código sin detener la aplicación, etc.

Lenguaje Ada.

Ada es un lenguaje de programación orientado a objetos y fuertemente tipado de forma estática que fue diseñado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje multipropósito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++. Fue diseñado con la seguridad en mente y con una filosofía orientada a la reducción de errores comunes y difíciles de descubrir. Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecución (desactivarles en beneficio del rendimiento). La sincronización de tareas se realiza mediante la primitiva rendezvous.

Ada se usa principalmente en entornos en los que se necesita una gran seguridad y fiabilidad como la defensa, la aeronáutica (Boeing o Airbus), la gestión del tráfico aérea y la industria aeroespacial entre otros. Ada, es uno de entre muchos posibles lenguajes de programación. Fue diseñado con un claro propósito en mente: la calidad del producto. El lenguaje fue diseñado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD). Durante los años 1970, este departamento tenía proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software. Para solucionarlo se buscó un lenguaje único que cumpliese unas ciertas normas recogidas en el documento Steelman. Después de un estudio de los lenguajes existentes en la época se decidió que ninguno las cumplía totalmente, por lo que se hizo un concurso público al que se presentaron cuatro equipos, cuyas propuestas se nombraron con un color: Rojo (Intermetrics), Verde (CII Honeywell Bull), Azul (SofTEch) y Amarillo (SRI International). Finalmente en mayo de 1979 se seleccionó la propuesta Verde diseñada por Jean Ichbiah de CII Honeywell Bull, y se le dio el nombre de Ada. Esta propuesta era un sucesor de un lenguaje anterior de este equipo llamado LIS y desarrollado durante los años 1970.

Abstracción de datos

Se puede obtener mayor transportabilidad y mejor mantenimiento si se pueden separar los detalles de la representación de los datos y las especificaciones de las operaciones lógicas sobre los mismos.

Procesamiento paralelo

Para muchas aplicaciones es importante que el programa se pueda implementar como una serie de actividades paralelas. Dotando al lenguaje de estos mecanismos, se evita tener que añadirlos por medio de llamadas al sistema operativo, con lo que se consigue mayor transportabilidad y fiabilidad.

Componentes léxicos

Se pueden encontrar en Ada los siguientes componentes léxicos:

Identificadores

Literales numéricos

Literales de tipo carácter

Cadenas de caracteres

Delimitadores

Palabras reservadas.

Un compilador de Ada muy usado es GNAT, originalmente desarrollado por la Universidad de Nueva York bajo patrocinio del DoD. Está basado en la tecnología de GCC y es software libre. Actualmente está mantenido por AdaCore (antes llamada Ada Core Technologies), empresa que ofrece soporte y servicios sobre el compilador. Existen otros compiladores comerciales.

Éste es el típico "Hola Mundo" escrito en Ada:

with Ada.Text_IO; procedure Hola_Mundo is begin Ada.Text_IO.Put("¡Hola, mundo!"); end Hola_Mundo;

Lenguaje Haskell.

En los años setenta se produjo lo que se conoce como la crisis del software. La gran mayoría del software que se producía no era fiable. Tenía una gran tasa de errores que ponía en grave peligro la confianza de los usuarios en estos sistemas. Por esta razón se propuso una solución: crear un nuevo modelo programación, lo que se conoce como programación funcional. Dentro de este tipo de programación tenemos lenguajes como: el Haskell, el LISP, el Miranda, el Scheme, etc. El Haskell nació como lenguaje de programación en el año 1987, desde entonces se ha desarrollado considerablemente como un lenguaje de programación funcional puro, de propósito general. El Haskell tiene todas las innovaciones de los lenguajes funcionales como son: desarrollo de las funciones de orden superior, evaluación perezosa, tipos definidos por el usuario, tipos polimórficos estáticos, definiciones de listas por comprensión, encajes patronales, etc. Haskell es un lenguaje funcional puro, no estricto y fuertemente tipificado.

* Puro = transparencia referencial:

* No estricto = usa un orden no aplicativo (Evaluación perezosa). * Tipificación fuerte = los elementos del lenguaje utilizables están clasificados en distintas categorías o tipos.

Un programa consiste en definiciones de funciones. Declararla: indicar el tipo Definirla: dar el método de computo Los principales tipos de datos básicos predefinidos en Haskell son: Char, Int, Integer, Float, Double y Bool .

  • - - Un ejemplo de ficheroHaskell

  • - - Calcula el siguiente entero al argumento sucesor :: Integer ! Integer

sucesor x = x + 1

  • - - Calcula la suma de los cuadrados de sus dos argumentos

sumaCuadrados :: Integer ! Integer ! Integer sumaCuadrados x y = x ¤ x + y ¤ y

El lenguaje evoluciona rápidamente y (ver más abajo) como los representantes actuales del estándar de facto. El último estándar semi-oficial es Haskell 2010, cuyas diferencias respecto al anterior estándar Haskell 98 son:

Nuevas características del lenguaje:

Interfaz de funciones foráneas (FFI), que permite usar código C en un programa

Haskell y código Haskell en un programa C. Un ejemplo explicativo se puede encontrar

Nombres jerárquicos para los módulos, por ejemplo Data.Bool.

Guardianes con patrones.

Función recursiva para calcular el factorial de un número natural:

--Función recursiva que calcula la factorial de un número natural factorial :: Integer -> Integer factorial n

|

n

< 0

= error "no existe el factorial para enteros negativos"

n | otherwise = n * factorial (n-1)

|

== 0 = 1

Otra versión de la función para calcular el factorial de un natural usando la función product del módulo Data.List:

--Función para calcular el factorial de un entero usando la función product del módulo Data.List factorial :: Integer -> Integer factorial n

|

n

< 0

= error "no existe el factorial para enteros negativos"

n | otherwise = product [1..n].

|

== 0 = 1

Lenguaje Progress 4GL. (Lenguajes de Cuarta Generación)

Progress es un producto que entre otras cosas incluyen un manejador de bases de datos muy estable con capacidad para grandes empresas. El lenguaje de progress es en 4GL que es muy cómodo y te permite programar muchas cosas con pocas líneas. Progress maneja con su lenguaje tanto los programas como los trigguers de base de datos. Es una herramienta que te permite si no puede hacer algo por su propia cuenta te permite usar APIS de terceros incluyendo DLL y OCX, o incluso puedes manejar otras bases de datos con el mismo lenguaje. Progress corre en varias plataformas, incluyendo Windows y Unix y el lenguaje lo puedes ejecutar igualmente en cualquiera de las plataformas aunque el sistema se encuentre en una y la base de datos en otra. Aunque progress no se anuncie mucho es un producto profesional muy bueno. Y está funcionando en muchas empresas incluyendo pequeñas empresas hasta muy famosas y conocidas.

Los lenguajes de cuarta generación o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creación de este. Se han utilizado principalmente en la generación de código para GUI y además en la implementación de programas que facilitan las tareas de los desarrolladores y clientes. La base de los 4GL es que el usuario no dice como se harán las cosas, solo brinda parámetros y el programa se encargara de generar el solicitado por el usuario, sea esto desde generación de reportes de bases de datos a solucionar un problema matemático.

Esta plataforma es muy potente. “Gracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informáticos de hoy en día, permitiéndoles concentrarse en lo que realmente importa, crear la lógica de negocio de sus aplicaciones. Los sistemas que componen la plataforma OpenEdge son compatibles, fiables y escalables, sin embargo requieren menos recursos administrativos que otras plataformas.” OpenEdge es una plataforma abierta y flexible. “Un desarrollador de OpenEdge puede crear APIs para clientes de .NET, clientes de Java™, mensajes de Java, hasta el esquema de de base de datos en formatos XML, eso, sin nunca dejar la eficiencia de Progress 4GL y de las herramientas de OpenEdge.” Progress incluye herramientas de programación y de bases de datos, y recursos de servidores todo en su ambiente, permitiendo fácil acceso a todos los recursos para crear aplicaciones. Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos, ya que el tamaño de las tablas puede ser excesivamente grande sin problema alguno. “Además, las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de más de 30,000 usuarios simultáneos.” Esta garantía de calidad que da Progress, hace de este un programa muy usado en el momento, con una gran funcionalidad. Además es un programa muy simple de utilizar en comparación a otros como SQL, donde se tardaría mucho más tiempo creando una base de datos.

Tipos de lenguajes de cuarta generación

Existen diferentes tipos de lenguajes de cuarta generación, cada uno con una función en particular. Entre ellos están los generadores de reportes, los generadores de “forms”, ambientes de cuarta generación, administradores de datos y los generadores de aplicaciones. Los generadores de reportes (Report Generators) toman una descripción del formato y el reporte a generar, y de ahí pueden generar el reporte de forma directa, o bien un programa que genere el reporte. Existen unos generadores de reportes utilizados para genera informes a partir de una base de datos. Se parece a un lenguaje de consultas en que permite al usuario hacer preguntas sobre la base de datos y obtener información de ella para un informe. Sin embargo, en el generador de informes se tiene un mayor control sobre el aspecto de la salida.

Los generadores de “Forms” (Forms Generators), en algunos casos manejan iteraciones online con los usuarios de la aplicación o bien crean un programa para que manejen esta iteración. Permiten que el usuario defina el aspecto de la pantalla, qué información se debe visualizar y en qué lugar de la pantalla debe visualizarse. Algunos generadores de formularios permiten la creación de atributos derivados utilizando operadores aritméticos y también permiten especificar controles para la validación de los datos de entrada.

Lenguaje PL/1.

PL/1, acrónimo de Programming Language 1 (Lenguaje de Programación 1), fue propuesto por IBM hacia 1970 para responder simultáneamente a las necesidades de las aplicaciones científicas y comerciales, disponible en las novedosas plataformas de utilidad general IBM 360 y más adelante IBM 370. Este lenguaje tenía muchas de las características que más adelante adoptaría el lenguaje C y algunas de C++. Por desgracia, IBM registra el nombre del lenguaje como forma de mantener control sobre su desarrollo, lo que disuadió a otras empresas de dar ese nombre a sus implementaciones. No siendo posible encontrar un único lenguaje para diversas plataformas, los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus múltiples innovaciones, que incluían multiprocesamiento, recursión, estructuras de control

modernas, facilidades para la puesta a punto, asignación dinámica de espacio para estructuras de datos, procedimientos genéricos, etc. Sin embargo, dentro de los usuarios de IBM, el lenguaje se utilizó con bastante intensidad, y el proyecto Multics utilizó PL/1 como lenguaje de desarrollo para su sistema de operación.

PL/1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba.

Ejemplos de código: Hola Mundo.

Test: procedure options(main); declare My_String char(20) varying initialize('Hola, mundo!'); put skip list(My_String); end Test;

Mostrar la posición de las líneas que coinciden con un patrón.

/* Lee una línea que contiene una cadena /* y luego imprime cada linea sucesiva que contiene dicha cadena. */

find_strings: procedure options (main);

declare pattern character (100) varying;

declare line

character (100) varying;

declare (line_no, end_file) fixed binary;

end_file = 0; on endfile (sysin) end_file = 1;

get edit (pattern) (L); line_no = 1; do while (end_file = 0); get edit (line) (L); if index(line, pattern) > 0 then put skip list (line_no, line); line_no = line_no + 1; end;

end find_strings;

Lenguaje PowerBasic.

Muchos usuarios comeinzan programando en lenguaje BASIC. Por aquellos días era no estructurado (con números de línea), e interpretado. Además en mi caso, sobre un hardware de 8 bits.

Bastante tiempo después, con Turbo Basic, llegué a la compilación, que como ahora es conocido por todos, permitía transformar el código fuente, en este caso en código ejecutable nativo. Además Turbo Basic implementaba un dialecto de BASIC estructurado, que permitía evitar el código espagueti.

Turbo Basic 1.0 escrito por Bob Zale, y vendido a Borland, apareció en 1986, llegando a la revisión 1.1 de 1987. A partir de este momento, y por causas que nunca llegaron a aclararse, quedó olvidado. De este modo, los que éramos fieles a BASIC, nos pasamos a Quick BASIC y BASIC Compiler / BASIC Professional Development System de Microsoft.

En 1990, el autor original, crea PowerBASIC 2.0, como una actualización sobre lo que ya aportara Turbo Basic 1.1, y que va recibiendo actualizaciones hasta 1997 con la versión 3.5. En aquel tiempo, Powerbasic compite no solamente con otros compiladores de BASIC, sino con Pascal y C en cuanto a eficiencia de código y características. Entre ellas hay que destacar los punteros, el ensamblador en linea, el soporte de memoria EMS, o la generación de código de 16 bits optimizado para procesadores 386.

Turbo Basic 1.0 escrito por Bob Zale, y vendido a Borland, apareció en 1986, llegando aPowerBASIC 2.0, como una actualización sobre lo que ya aportara Turbo Basic 1.1, y que va recibiendo actualizaciones hasta 1997 con la versión 3.5. En aquel tiempo, Powerbasic compite no solamente con otros compiladores de BASIC, sino con Pascal y C en cuanto a eficiencia de código y características. Entre ellas hay que destacar los punteros, el ensamblador en linea, el soporte de memoria EMS, o la generación de código de 16 bits optimizado para procesadores 386. Lenguaje COBOL. El Cobol (del inglés: Common Business Oriented Language, o Lenguaje Común Orientado a Negocios) se inventó en los años 60. Nació con el objetivo de ser un lenguaje de programación versátil, que pudiese ser usado en cualquier computador. En los años 60 era muy difícil que el software creado para una máquina concreta sirviese para otra diferente. Porque la mayoría de estas computadoras eran incompatibles entre sí. Con el Cobol se quería conseguir este lenguaje de programación que fue compatible con los principales modelos de computadoras. Se quería además conseguir con este nuevo lenguaje de programación que estuviese destinado a los negocios, concretamente a lo que conocemos como informática de gestión. Así nació el Cobol, como un lenguaje de programación compatible con la mayoría de las computadoras y destinado principalmente a la gestión. " id="pdf-obj-12-8" src="pdf-obj-12-8.jpg">

Lenguaje COBOL.

El Cobol (del inglés: Common Business Oriented Language, o Lenguaje Común Orientado a Negocios) se inventó en los años 60. Nació con el objetivo de ser un lenguaje de programación versátil, que pudiese ser usado en cualquier computador. En los años 60 era muy difícil que el software creado para una máquina concreta sirviese para otra diferente. Porque la mayoría de estas computadoras eran incompatibles entre sí. Con el Cobol se quería conseguir este lenguaje de programación que fue compatible con los principales modelos de computadoras. Se quería además conseguir con este nuevo lenguaje de programación que estuviese destinado a los negocios, concretamente a lo que conocemos como informática de gestión. Así nació el Cobol, como un lenguaje de programación compatible con la mayoría de las computadoras y destinado principalmente a la gestión.

Por estas razones podemos decir que el Cobol es un lenguaje de programación que nada tiene que enviar a otros como el Visual Basic, Delphi, etc. El Cobol cuenta con entornos de programación gráficos, nos permite hacer aplicaciones con una interfaz gráfica con SQL incrustada para que podamos tener acceso a la mayoría de las bases de datos SQL del mercado. El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran número de usuarios.

Características del Lenguaje Cobol

1.- Es un lenguaje auto-documentado: se suponía en un inicio que COBOL sería un lenguaje accesible para agentes no programadores, o sea se hablaba de que estos pudieran revisar el código sin tener conocimientos de programación, la idea a pesar de que no fue completamente efectiva, hizo que cobol se convirtiera en el lenguaje auto-documentado más fácil de entender. 2.- Es un lenguaje simple con una funcionalidad limitada: no tiene punteros ni funciones ni tipos definidos por el usuario 3.- Es portable: su estándar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de máquinas por ejemplo Windows, UNIX, OS/2 entre otros. 4.- Es mantenible: como se ha dicho ya, COBOL tiene una gran facilidad de interpretación y una gran legibilidad y además tiene una rígida estructura jerárquica y por medio de todo esto su mantenimiento se facilita muchísimo. Como ejemplo se podría ver que en el año 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparación fue mucho más fácil y barata en comparación con otros lenguajes. 5.- Rígida estructura jerárquica de que dispone.

El éxito de COBOL

La mayoría se sorprende cuando se da cuenta de que las cifras se inclinan claramente a favor de COBOL en el dominio del mercado. El entorno de algunos lenguajes trataría de convencernos de que la mayoría de la producción en el mundo se hace en Java, C, C++ o Visual Basic y que solo un pequeño porcentaje está hecha en COBOL, pero la realidad es bien distinta.

Una de las razones para esta concepción errónea radica en la diferencia entre el software vertical y el horizontal:

En el mercado del software vertical, las aplicaciones requieren de millones de dólares de inversión para su producción, están dirigidas a empresas concretas, rigen las reglas de esa compañía, y existe un pequeño número de copias funcionando en todo el mundo. Un ejemplo es el sistema DoD MRP II, que funciona en grandes servidores en determinados puntos geográficos de EE.UU., y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de dólares.

Sintaxis de COBOL

La sintaxis de COBOL está definida usando una notación particular que se suele llamar MetaLenguaje COBOL.

En esta notación, las palabras en mayúsculas son siempre palabras reservadas. Si una palabra está subrayada, significa que es obligatoria su inclusión; si no lo están, pueden considerarse “ruido” o explicaciones con respecto a los demás comandos, para su legibilidad. Dado que COBOL trata de parecerse al idioma inglés, hay muchas de estas palabras “ruido”. Las palabras con mayúsculas y minúsculas representan nombres, y como tal, deben ser ideados por los propios programadores.

Cuando hay material encerrado entre llaves { }, se trata de opciones que deben elegirse de entre los elementos contenidos, como si de un conjunto algebraico se tratase. Cuando hay elementos encerrados entre corchetes [ ], indica que el material es opcional, y puede ser incluido u omitido según se requiera.

Cuando se encuentran puntos suspensivos

indica que el elemento sintáctico precedente

... puede ser repetido o continuado a voluntad del programador.

Diagrama sintáctico de ejemplo

En COBOL, evaluar una expresión aritmética, y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE. A continuación vemos el diagrama sintáctico de COMPUTE:

 

ON SIZE ERROR

COMPUTE {Result#i [ROUNDED]} ...

 

]}Instrucciones END NOT -

   

= Expresión aritmética [{

COMPUTE

ON

SIZE

ERROR

Este diagrama se interpretaría de la siguiente manera:

Empezamos una instrucción COMPUTE con la palabra COMPUTE.

Seguimos con el nombre de la variable numérica (o los nombres, véanse los puntos suspensivos) para recibir el resultado de la expresión. El sufijo #i tras la variable Result nos indica que se trata de un identificador numérico.

LAS CUATRO DIVISIONES

En la parte superior de la jerarquía de COBOL se encuentran las 4 Divisiones. Éstas dividen un programa en distintos elementos estructurales. Algunas de las Divisiones pueden ser omitidas, pero la secuencia en que han de especificarse es fija, y es la que sigue:

División de Identificación: Contiene información de programa División de Entorno: Contiene información del entorno División de Datos: Contiene descripciones de datos División de Procedimientos: Contiene los algoritmos del programa.

Los programas COBOL tienen estructura jerárquica. Cada elemento de la jerarquía puede tener uno o más elementos subordinados. La jerarquía es Divisiones, Secciones, Párrafos, Oraciones y Expresiones. Una División puede contener una o más Secciones, una Sección uno o más Párrafos, un Párrafo una o más Oraciones, y cada Oración una o más Expresiones. División: Es un bloque de código, normalmente contiene una o más secciones, y comienza donde se encuentra el nombre de la División, y termina con la siguiente División o con el fin del programa. Sección: Podemos aplicar la misma definición que en División. Los nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje. Un nombre de sección va seguido de SECTION y un punto.

Lenguaje NATURAL.

Código del programa ¡Hola Mundo! En NATURAL: WRITE '¡Hola Mundo!'END

Tiene la sentencia de control de flujo "ESCAPE TOP", la cual es similar a "continue" en C, o "Continue For" en "Visual Basic.NET 2005", excepto que también funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteracción del bucle de proceso. Como "continue", evita gran número de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle.

Ejemplo con ESCAPE TOP:

DEFINE DATA LOCAL

1

I (N3)

 

/* 3 dígitos, sin decimales

END-DEFINE

 

FOR I = 2 TO 100

 
 

IF

(I

/

2

*

2) = I AND I > 2

 

WRITE 'Número' I 'es divisible entre 2' ESCAPE TOP END-IF

IF

(I

/

3

*

3) = I AND I > 3

WRITE 'Número' I 'es divisible entre 3' ESCAPE TOP END-IF

IF

(I

/

5

*

5) = I AND I > 5

WRITE 'Número' I 'es divisible entre 5' ESCAPE TOP END-IF

IF

(I

/

7

*

7)

= I AND I > 7

WRITE 'Número' I 'es divisible entre 7' ESCAPE TOP END-IF IF (I / 11 * 11) = I AND I > 11 WRITE 'Número' I 'es divisible entre 11' ESCAPE TOP END-IF WRITE 'Número' I 'es primo' END-FOR END

Los niveles de indentación pueden ser ajustados automáticamente con el comando STRUCT dentro del Editor de NATURAL. El mismo ejemplo, sin ESCAPE TOP:

DEFINE DATA LOCAL

 

1

I (N3)

 

/* 3 dígitos, sin decimales

END-DEFINE FOR I = 2 TO 100

 
 

IF

(I

/

2

*

2) = I AND I > 2

 
 

WRITE 'Número' I 'es divisible entre 2'

 

ELSE

 
 

IF

(I

/

3

*

3) = I AND I > 3

 

WRITE 'Número' I 'es divisible entre 3' ELSE

IF

(I

/

5

*

5) = I AND I > 5

WRITE 'Número' I 'es divisible entre 5'

ELSE

IF

(I

/

7

*

7)

= I AND I > 7

WRITE 'Número' I 'es divisible entre 7' ELSE IF (I / 11 * 11) = I AND I > 11 WRITE 'Número' I 'es divisible entre 11' ELSE WRITE 'Número' I 'es primo' END-IF END-IF END-IF

END-IF

END-IF

END-FOR

END

Lenguaje C Shell.

Un shell en UNIX es un intérprete de comandos. El Unix soporta dos tipos diferentes de shells, el Bourne shell y el C shell. Ambos shells tienen la misma finalidad, pero por diferentes caminos. El C shell es realmente una ampliación del Bournell shell. En este capítulo veremos por lo tanto una descripción del C shell. El Cshell posee un lenguaje de programación similar al lenguaje de programación C, de ahí el nombre de C shell.

Las capacidades básicas del C shell son:

Crear notaciones taquigráficas para un comando o una serie de comandos. Ejecutar varios trabajos simultáneamente, con o sin nuestra intervención. Parar un trabajo y empezar de nuevo. Ejecutar comandos usados previamente. Personalizar el ambiente a las necesidades personales. Escribir programas a nivel de comandos, para realizar cualquier tipo de tarea.

Algunos datos acerca de C Shell

Su sintaxis es muy parecida al lenguaje de programación C, razón por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh. Edición de comandos, históricos y asignación de alias son alguna de las características de shell C deseables que no son disponibles en Bourne. Su indicador es el signo de porcentaje (%). El programa ejecutable para este shell se encuentra en el archivo /bin/csh (Linux).

El mandato csh inicia el shell C.

Cuando inicia la sesión, el mandato csh busca en primer lugar el archivo de configuración de todo el sistema /etc/csh.cshrc. Si el archivo de configuración existe, el shell C ejecuta los mandatos almacenados en dicho archivo. A continuación, el shell C ejecuta el archivo de configuración de todo el sistema /etc/csh.login, si está disponible. Después, busca en el directorio inicial los archivos .cshrc y .login. Si existen, contienen información de usuario personalizada pertinente para ejecutar el shell C. Todas las variables establecidas en los archivos /etc/csh.cshrc y /etc/csh.login podrían alterarlas temporalmente los archivos .cshrc y .login del directorio $HOME. Sólo el usuario root puede modificar los archivos /etc/csh.cshrc y /etc/csh.login.

Los archivos /etc/csh.login y $HOME/.login sólo se ejecutan una vez durante el inicio de sesión. Por lo general, estos archivos se utilizan para contener las definiciones de las variables de entorno, los mandatos que desea que se ejecuten una vez al iniciarse la sesión o los mandatos que establecen las características del terminal.

Lenguaje Shell UNIX.

El Shell

Se conoce con el nombre de Shell al programa que atiende a los órdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema; es decir es él interprete de comandos del sistema operativo UNIX. También se le conoce con el nombre de caparazón. (Análogo al Command.com de MS-DOS).

El shell es también un lenguaje de programación que soporta todas las estructuras propias de los lenguajes modernos. Además permite la utilización de todas las primitivas del sistema operativo de control de procesos, interrupciones y utilidades para diseñar programas de comandos por el usuario. A los programas realizados con el shell se les llama Shell Scripts, Procedimientos Shell o Guiones de Comando.

Los shell en Unix se clasifican en dos grandes grupos: el tipo Bourne y el tipo C. Los shell tipo Bourne toman su nombre a partir de su inventor, Steven Bourne. Steven Bourne escribió el shell original de Unix, denominado sh; a partir de entonces, la mayoría de los shells tienen un nombre con el sufijo sh para indicar que son extensiones de la idea original. Existen varias implementaciones de este shell, que colectivamente llevan el nombre de shells Bourne. También son comunes los shells tipo C cuyo original fue implementado por Bill Joy. Tradicionalmente, los shell Bourne se han utilizado para los scripts de shell y por razones de compatibilidad con el sh original, mientras que los shells C han sido más comunes en su aplicación interactiva. (Los C tienen ventajas en cuanto a sus mejores características interactivas, aunque son más difíciles de programar).

Estructura de una línea de comandos

Una vez iniciada una sesión

UNIX y estando presente

el prompt

$,

el

interprete de

comandos Shell está preparado para recibir un comando, cuya estructura es la siguiente:

$ comando [parámetros] [argumentos] [separador]

Nombre: Nombre del comando

Parámetros: Posibles variaciones de actuación del comando.

Argumentos: Nombre del elemento (archivo, directorio comando. Separador: Delimitador que sirve para separar comandos Ejemplo:

..

)

sobre el que se quiere aplicar el

$cc

-o

Ejemplo.c

;

Who

Comando

Parámetros

argumento

Separador

Otro comando

Los comandos consisten en una secuencia de letras, números y caracteres. Hay que tener en cuenta que UNIX hace diferencia entre mayúsculas y minúsculas.

Características del shell.

La característica más destacable del shell es la versatilidad: facilidad de modificación y de adaptación a las necesidades y preferencias de cada usuario en particular. Proporciona diversas facilidades al usuario:

Redireccionamiento de la salida o la entrada standard. Metacaracteres, caracteres especiales con significado propio. Filtros, que se encargan de gestionar la información de los ficheros.

Conexionado entre órdenes, mediante el uso de tuberias (pipes). Cuando se interconexionan dos órdenes, la salida de un proceso se convierte en la entrada del siguiente. Así se elimina la necesidad de crear ficheros temporales intermedios.

Lenguaje Shell-Script.

Ya vimos hace algunas lecciones una introducción al interprete de comandos de Linux (shell). Vamos a ampliar nuestros conocimientos sobre la shell y si bien antes consideramos a la shell como un interprete de comandos en esta lección veremos que es mucho más que eso. La shell de Linux que vamos a usar es la Bash que como ya dijimos es un superconjunto de la Bourne-Shell. Sin lugar a dudas esta lección le permitirá dar un salto enorme en el aprovechamiento de su SO Linux.

El lenguaje shell-script es muy versátil aunque hay que advertir que es bastante ineficiente. Son mucho más eficientes los programas escritos en lenguaje C. Este es el lenguaje en el que se escribió el kernel de Linux y otros muchos SO. El Bash no es tan eficiente como el C. El valor del lenguaje shell-script es que permite hacer cosas complicadas con muy poco esfuerzo en perfecta combinación con una serie de comandos también muy potentes disponibles en Linux. Algunas partes del SO que no pertenecen al kernel están escritas en shell-script. Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script así que la ineficiencia no es ningún obstáculo para ciertas tareas. Por el contrario para un administrador tener ciertos programas del sistema en shell- script le permite retocarlos a su gusto con gran facilidad.

Ejecución con la shell-actual.

Hasta este momento siempre hemos arrancado una sub-shell que leía las órdenes del fichero, las ejecutaba y después terminaba y moría cediendo el control nuevamente a la shell original que arrancó la sub-shell. Existe una forma de decirle a la shell actual que lea y ejecute una serie de órdenes por si misma sin arrancar una sub-shell. Para ello hay que anteponer un punto y un blanco al nombre del comando. Nuevamente solo hará falta permiso de lectura.

#

Ejecutar ordenes de un fichero desde la shell actual

.

./fichero_ordenes

En este caso no se ha ejecutado mediante una sub-shell

pero no se aprecia ninguna

diferencia. Esto no siempre es así. Veamos un ejemplo en el que se aprecie la diferencia. $$ tomará el valor del pid de la shell en ejecución y $PPID tomará el valor del pid del proceso padre.

$echo echo \$PPID \$$ > fichero_ordenes $ bash fichero_ordenes

213 2396

$

./fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendrá un pid distinto de 213 pero lo interesante es ver como ambas ejecuciones establecen claramente que la primera fue efectuada por un proceso hijo de la shell que se ejecuta en segundo lugar usando el punto, seguido del espacio y del 'fichero_ordenes'.

Lenguaje Go.

Es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C. Ha sido desarrollado por Google y sus diseñadores iniciales son Robert Griesemer, Rob Pike y Ken Thompson. Actualmente sólo está disponible para los sistemas operativos Windows, GNU/Linux y Mac OS X. [

El día de la publicación del lenguaje Go, Francis McCabe, desarrollador del lenguaje de programación Go! (Anteriormente llamado Go), solicitó que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje. [4] McCabe creó Go! en el año 2003; sin embargo, aún no ha registrado el nombre. [5] Go es un nuevo lenguaje de programación para sistemas lanzado por Google en noviembre de 2009. Aunque empezó a ser desarrollado en septiembre de 2007 por Robert Griesemer, Rob Pike y Ken Thompson.

Go es un lenguaje de programación compilado, concurrente, imperativo, estructurado, orientado a objetos —de una manera bastante especial— y con recolector de basura que de momento está soportado en diferentes tipos de sistemas UNIX, incluidos Linux, FreeBSD y Mac OS X. También está disponible en Plan 9 puesto que parte del compilador está basado en un trabajo previo sobre el sistema operativo Inferno.

Características

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy cómodos con él.

Go usa tipado estático (statically typed) y es tan eficiente como C.

Go tiene muchas de las características y facilidad de lenguajes dinámicos como Python

Aun siendo un lenguaje diseñado para la programación de sistemas, provee de un recolector de basura, reflexión y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente.

Go admite el paradigma de programación orientada a objetos, pero a diferencia de los lenguajes de programación más populares no dispone de herencia de tipos y tampoco de palabras clave que denoten claramente que soporta este paradigma. Otro detalle que puede resultar confuso es que la definición de un tipo ("clase") se realiza por medio de declaraciones separadas (interfaces, structs, embedded values). Go permite el uso de delegación (a través de embedded values) y polimorfismo (por medio de interfaces).

Go, al igual que C y C++, es un lenguaje compilado con algunas características peculiares.

Es un lenguaje concurrente que soporta canales de comunicación basados en el lenguaje CSP de Sir Charles Antony Richard Hoare, creador del algoritmo de ordenación QuickSort y ganador del Turing en 1980. La concurrencia en Go es diferente a los criterios de programación basados en bloqueos como pthreads.

El clásico programa Hola mundo en Go es similiar a como se haría en C++. Con este mítico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares:

package main import "fmt" func main() {

fmt.Printf("Hola, mundo.\n")

}

La notación de los comentarios es exactamente la misma que la de C++:

/* ...

...

 

*/

// ...

Lenguaje Meta o ML.

ML es un lenguaje de programación funcional (impuro) de propósito general, desarrollado por Robin Milner y otros, a principios de los 70 en la Universidad de Edimburgo. Su sintaxis se inspira en el ISWIM. ML son las siglas de Meta Lenguaje, pues su objetivo inicial fue servir como lenguaje para desarrollar tácticas de pruebas en el sistema demostrador de teoremas LCF. Es conocido por el uso del algoritmo de inferencia del tipo Hindley–Milner, que puede automáticamente inferir los tipos de la mayoría de las expresiones sin necesidad de que explícitamente se especifiquen los tipos de datos.

Frecuentemente se clasifica a ML como un lenguaje funcional impuro dado que permite programar imperativamente con efecto colateral, a diferencia de otros lenguajes de programación funcional, tales como Haskell. Entre las características de ML se incluyen evaluación por valor, álgebra de funciones, manejo automatizado de memoria por medio de recolección de basura, polimorfismo parametrizado, análisis de estático de tipos, inferencia de tipos, tipos de datos algebraicos, llamada por patrones y manejo de excepciones. Esta combinación particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles.

En la actualidad varios lenguajes de la familia ML están disponibles, principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto). Varias ideas aparecidas en ML han influido el diseño de otros lenguajes, tales como Cyclone y Nemerle. Los lenguajes de la familia ML se aplican principalmente en diseño y manipulación de lenguajes de programación (compiladores, analizadores, demostradores de teoremas), así como en bioinformática, sistemas financieros, protocolos de sincronización, etc.

Primeros pasos en ML

Manejando cadenas de caracteres:

- "Hola Mundo";

val it = " Hola Mundo " : string

Operando enteros: - 3+4; it = 7 : int

Creación de funciones: fun <nombre> <parámetros> = <expresión>; fun doble x = 2*x; fun incremento x = x+1;

Tipos básicos Tipos básicos: integer, real, string, char, boolean.

Listas de enteros:

[1,2,3] : int list

Lista de cadenas de caracteres:

[“David",“Jesús“,“Blas"] : string list

Listas compuestas:

[(2,3),(2,2),(9,1)] : (int * int) list

Listas de listas:

[[],[1],[1,2]] : int list list

Lenguaje Standard ML.

El lenguaje de programación Standard ML o SML es un lenguaje descendiente del lenguaje ML que nació como el Meta Lenguaje del sistema LCF. A diferencia de muchos otros lenguajes de programación, SML tiene una especificación formal, como semántica operacional publicada en el libro The Definition of Standard ML.

Implantaciones

Standard ML of New Jersey (abreviado SML/NJ) es un compilador completo, junto con sus bibliotecas, herramientas, y documentación.

Moscow ML es una implementación liviana, basada en el ambiente de ejecución de CAML Light. Implementa el lenguaje SML completo, incluyendo sus módulos, también incluye la mayor parte de la biblioteca de ase de SML.

MLton es un compilador para programas completos (no maneja la noción de

módulos).

Poly/ML es una implantación completa de Standard ML.

SML2c es un compilador para firmas estructuras y funciones que genera código en lenguaje C. Está basado en SML/NJ versión 0.67 y comparte con esa versión la mayor parte del ambiente de ejecución, pero no planta ni herramientas de puesta a punto ni perfiles de ejecución. La compatibilidad a nivel de los módulos con SML/NJ es completa. Todas las distribuciones mencionadas son de tipo software libre. No hay versiones comerciales de SML disponibles.

Lenguaje 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 implementada sobre el framework .NET. Su introducción resultó muy controvertida, ya que debido a cambios significativos en el lenguaje VB.NETno es compatible hacia atrás con Visual Basic, pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic, facilitando asi el desarollo de aplicaciones más avanzadas con herramientas modernas.

La gran mayoría de programadores de VB.NET utilizan el entorno de desarrollo integrado (IDE) Microsoft Visual Studio en alguna de sus versiones (Visual Studio .NET, Visual

Studio .NET 2003, Visual Studio .NET 2005, Visual Studio .NET 2008), aunque existen otras alternativas, como SharpDevelop (que además es libre).<br /> Al igual que con todos los lenguajes de programación basados en .NET, los programas escritos en VB .NET requieren el Framework .NET para ejecutarse.

En el desarrollo de software, un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con artefactos o módulos de software concretos, con base en la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes componentes de un proyecto.

NET es un framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde el sistema operativo hasta las herramientas de mercado.

La plataforma .NET de Microsoft:

Es un componente de software que puede ser añadido al sistema operativo Windows. Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programación de aplicaciones, y administra la ejecución de los programas escritos específicamente con la plataforma. Esta solución es el producto principal en la oferta de Microsoft, y pretende ser utilizada por la mayoría de las aplicaciones creadas para la plataforma Windows.

NET Framework se incluye en Windows Server 2008, Windows Vista y Windows 7. De igual manera, la versión actual de dicho componente puede ser instalada en Windows XP, y en la familia de sistemas operativos Windows Server 2003. Una versión "reducida" de .NET Framework está disponible para la plataforma Windows Mobile, incluyendo teléfonos inteligentes. 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. Si Visual Basic .NET debe considerarse una mera versión de Visual Basic, o si debe considerarse como un nuevo lenguaje de programación es un tema que ha traído mucha discusión, y que aún la trae.

La sintaxis básica es prácticamente la misma entre VB y VB.NET, con la excepción de los añadidos para soportar nuevas características como el control estructurado de excepciones, la programación orientada a objetos, o los Genéricos.

Las diferencias entre VB y VB.NET son profundas, sobre todo en cuanto a metodología de programación y bibliotecas, pero ambos lenguajes siguen manteniendo un gran parecido, cosa que facilita notablemente el paso de VB a VB.NET.

Visual Basic 2008 (VB 9.0)

Para esta versión se añadieron varias novedades, incluyendo:

Soporte para LINQ

Literales XML

Visual Basic 2010 (VB 10.0)

Visual Basic 2010 ofrece soporte para entorno de ejecución dinámica. VB 2010 forma parte de Microsoft Silverlight. Visual Basic es un lenguaje de programación que permite realizar diferentes programas de registro anidados. Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VB.NET existen algunas alternativas a Visual Studio, quizás la más notable sea SharpDevelop.

SharpDevelop

SharpDevelop es un entorno de programación integrado que permite programar en C# y en VB.NET. Este es un entorno publicado bajo licencia LGPL, lo que implica que es libre y que disponemos del código fuente.

MonoDevelop

MonoDevelop es una implementación de SharpDevelop para programar usando Mono, una implementación libre de .NET que funciona en distintos sistemas operativos.

Lenguaje F#.

F# es un lenguaje de programación que proporciona compatibilidad con la programación funcional así como con la programación convencional orientada a objetos e imperativa (de procedimiento). El producto Visual F# permite desarrollar aplicaciones en F# y extender otras aplicaciones de .NET Framework mediante código F#. F# es un miembro de primera clase de los lenguajes .NET Framework y conserva un gran parecido con la familia de lenguajes funcionales de ML. Es una variante del lenguaje de programación ML y es compatible con la implementación Objective Caml. F# fue inicialmente desarrollado por Miguel Tentei Cortés Solórzano y Don Syme de Microsoft Research, pero actualmente está siendo desarrollado por la División de Desarrolladores de Microsoft y es distribuido como un lenguaje totalmente soportado en la plataforma .NET y Visual Studio 2010, 2012 y 2013.

F# admite las construcciones de programación funcional, tales como:

Funciones

como

valores,

lo

que

permite

la

manipulación

flexible

de

las

funciones. Para obtener más información, vea Funciones como valores de primera clase (F#).

Composición y canalización de funciones, lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificación de operaciones sucesivas con datos. Para obtener más información, vea Funciones (F#).

Inferencia de tipos, lo que reduce la necesidad de llamar explícitamente a los tipos, sin sacrificar la seguridad de tipos.

Generalización automática, lo que promueve la reutilización de código facilitando la escritura de código que funciona con diversos tipos diferentes sin ningún esfuerzo adicional.

Compatibilidad con la coincidencia de modelos, lo que simplifica el código condicional complejo, y las uniones discriminadas, que se optimizan para su uso con la coincidencia de modelos.

Tipos de colección para trabajar con datos inmutables, incluidos tipos de lista y secuencia.

Expresiones lambda, que son importantes para numerosas construcciones de programación funcional.

Aplicación

parcial

de

argumentos

de

función,

lo

que

permite crear

implícitamente nuevas funciones a partir de funciones existentes. Para obtener más información, vea Funciones (F#).

Expresiones de código delimitadas, una característica que permite manipular las expresiones de F# mediante programación.

Las funciones y expresiones que no retornan ningún valor tienen como tipo de retorno unit. F# usa la palabra clave let para enlazar valores a nombres. Por ejemplo,

let x = 3 + 4

Enlaza el valor 7 al nombre x.

Nuevos tipos son definidos usando la palabra clave type. Para una programación funcional, F# provee los tipos tuple, record, discriminated union, list y option. Una tupla representa una colección de n valores. El valor n es llamado la aridad de la tupla. Una 3-tuple podría ser representada como (A, B, C), donde A, B y C son valores con posiblemente diferente tipos. Un record es un tipo donde los datos son nombrados, por ejemplo: { Name:string; Age:int }. Los records pueden ser creados como { Name="AB"; Age=42 }. La palabra clave with es usada para crear una copia de un record, por ejemplo: { r with Name="CD" }, el cual crea un nuevo récord copiando r y cambiando el valor del campo Name (asumiendo que el récord creado en el ejemplo anterior fue nombrado r).

Un tipo discriminated union es un type-safe versión de las uniones de C. Por ejemplo,

type A = | UnionCaseX of string | UnionCaseY of int

Lenguaje FORTRAN.

Fortran. (Formula Translating System), es un lenguaje orientado al cálculo numérico, diseñado en sus inicios para las computadoras IBM y usado en aplicaciones científicas y de ingeniería y es el más antiguo de los Lenguajes de alto nivel. El FORTRAN desde sus inicios

dominó el área de la programación y se ha mantenido su desarrollo y aplicación por más de 50 años en distintos segmentos de la ciencia y técnica. El FORTRAN uno de los lenguajes más usados en la Computación de alto rendimiento, además se utiliza para el desarrollo de programas que evalúan el desempeño y el posicionamiento de los Supercomputadores. Este lenguaje fue propiedad absoluta de IBM hasta 1961, al pasar el tiempo se fue extendiendo a computadoras de otros fabricantes. Al igual que otros lenguajes de programación, FORTRAN tiene varias versiones, las cuales añaden mejor funcionalidad al mismo.

El nacimiento de este lenguaje se debe principalmente a John Backus en unión de Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre, todos ellos de la nómina de IBM, quienes en 1954 presentan el informe titulado “Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN.” Se caracteriza por su potencia en los cálculos matemáticos, pero está 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. FORTRAN fue diseñado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas, por lo que el orden de las instrucciones debía ser secuencial, es decir la programación de los algoritmos era lineal, para producir cualquier alteración del orden de la lógica, se introduce la instrucción Goto.

Estructura básica de un programa FORTRAN

  • - Declarations

  • - Main program

  • - Subprogram 1

  • - Subprogram 2

  • - Subprogram n

  • - Los subprogramas son pequeños programas que se ejecutan a voluntad del programador.

Fortran 90 incorpora los módulos, la recursividad y sobrecargas de operadores, además nuevos tipos de datos. Se considera una actualización importante para poner a FORTRAN al nivel de los otros lenguajes modernos. La escritura se hace finalmente en formato libre. FORTRAN 2003 : como su viejo colega COBOL, FORTRAN soporta ahora la Programación orientada a objetos.

A continuación se muestra el código fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresión lineal de una serie de datos:

REGRESION LINEAL.FORTRANS APLICACION

DIMENSION TIEMPO(1000),PROD(1000)

OPEN(1,FILE='HISTORIA.txt')

I=0

  • 10 READ(1,*,END=80)T,P I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10

  • 80 NDATOS=I CALL AJULIN(TIEMPO,PROD,NDATOS,A,B) WRITE(*,90)A,B

  • 90 FORMAT('LA ECUACION ES:Y=',F10.2,'+',F10.2,'X')

  • 20 FORMAT(20F10.0) END

Lenguaje ABAP.

El ABAP (Advanced Business Application Programming o Procesador Genérico para la Preparación de Informes) es un lenguaje de programación de cuarta generación. El ABAP se utiliza para programar los Sistemas de Planificación de Recursos de una empresa. ABAP fue desarrollado por SAP como lenguaje de informes para SAP R/2, en los años 80, una plataforma que permitía a las grandes corporaciones construir aplicaciones de negocios para gestión de materiales y finanzas. ABAP, muy parecido al COBOL en sus orígenes, originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor, palabras alemanas para procesador genérico para la preparación de informes. En sus inicios ABAP incluía el concepto de Bases de datos lógicas, que suministraba un alto nivel de abstracción para el acceso a bases de datos.

Estos sistemas de planificación de recursos son procedimientos de gestión de la información que automatizan la mayoría de las prácticas de negocio relativas a los aspectos operativos o productivos de cualquier organización. Toda esta gestión se lleva a cabo a través de una serie de módulos, como por ejemplo: finanzas, ventas y distribución, logística, gestión de materiales, recursos humanos, etc. El ABAP es un lenguaje de programación especializado en la gestión de los sistemas de planificación de recursos de las empresas. Utiliza sentencias de otro lenguaje de programación el Open SQL para conectar bases de datos. Es buen lenguaje para el manejo de archivos, bases de datos, fechas, etc.

El ABAP se inventó en los años 80, con este lenguaje se quería conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestión de sus negociosActualmente muchas empresas están usando el ABAP como lenguaje de programación que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca. El Cobol realizaba antes de la década de los 80 estas tareas, hoy en día el ABAP le está quitando mercado al Cobol, la mayoría de la empresas han apostado por el ABAP, únicamente le queda al Cobol, un sector tan importante como es la banca, que se niega a cambiarse al nuevo sistema implantado por el lenguaje ABAP.

Sintaxis

Una breve descripción acerca de la sintaxis de ABAP comienza inevitablemente por el conocido “Hola mundo”

"Hola Mundo"

REPORT TEST. WRITE 'Hola Mundo'.

Este ejemplo contiene dos declaraciones: REPORT y WRITE. El programa muestra una lista en pantalla. En este caso, la lista consiste en una simple línea donde pondrá “Hola Mundo”. La declaración REPORT indica que este programa es un informe. Alternativamente se podría usar PROGRAM para los ‘module pool’ ABAP posee dos formas de definir comentarios:

Un asterisco a la izquierda de la línea hace que toda la línea sea un comentario

 

en cualquier lugar

en

una

línea hace

que

el

resto

de

la

misma se convierta en un comentario REPORT BOOKINGS.

* Leer libros de vuelo de la base de datos

SELECT * FROM FLIGHTINFO WHERE CLASS = 'Y'

"Y = precio

 

OR

CLASS = 'C'.

"C = clase

(

...

)

Lenguaje ALICE.

La implementación de Alice de la Universidad Saarland utiliza la máquina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en inglés). Es un Software libre, que incluye compilación al vuelo hacia código binario propio así como para código de máquina para la arquitectura

x86.

El mecanismo de llamada remota de procedimientos de Alice depende de su máquina virtual y permite realizar llamadas entre diferentes computadores.

Ejemplo

Alice extiende Standard ML con primitivas para evaluación perezosa y concurrencia. Por ejemplo, se puede crear nuevas hebras (threads, en inglés) con la primitiva spawn. El ejemplo siguiente implemente de forma ingenua una función que calcula los números de Fibonacci:

fun fib 0 = 0

| fib

1

= 1

| fib n = fib(n-1) + fib(n-2); Para grandes valores de n, fib n el tiempo de cómputo aumentará sustancialmente. Ese

cálculo puede realizarse en una hebra diferente al evaluar

val x = spawn fib n; La variable x se liga a un valor futuro. Cuando una operación requiere el valor actual de x, su evaluación queda bloqueada hasta tanto el valor esté disponible.

Lenguaje R.

R es un lenguaje y entorno de programación para análisis estadístico y gráfico. Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen, podríamos decir que es un dialecto libre del lenguaje S, desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadística de la Universidad de Auckland en

1993.

R

al

estar orientado a

las estadísticas, proporciona un amplio abanico de

herramientas.

 

Entre otras características de R, podemos nombrar su capacidad gráfica, que permite generar gráficos con alta calidad, con sólo utilizar las funciones de graficación.

R también puede usarse como herramienta de cálculo numérico y a la vez ser útil para la minería de datos.

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y gráficar. Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje. Al igual que S, se trata de un lenguaje de programación, lo que permite que permite extender sus propias funciones. La gran mayoría de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de más bajo nivel como C o Fortran. R es un lenguaje interpretado, el usuario normalmente accede por líneas de comandos o consola. Veamos unos ejemplos:

Si queremos hacer un Hola mundo podemos hacerlo de la siguiente manera:

> print("Hola Mundo") > [1] "Hola Mundo"

Sumemos 2 números:

>

2 +

3

> [1] 5

¿Pero qué hace tan potente a R? Momento, recién empezamos. Veamos a R haciendo lo que mejor sabe hacer, analizar datos.

Vamos a crear una colección:

> x <- c(1,2,3,4,5,6)

Vamos a calcular el cuadrado de cada elemento:

> y <- x^2 > y

> [1]

1 4 9 16 25 36

Ahora vamos a calcular la media, la varianza y vamos a graficar!

> mean(y) > [1] 15.16667 > var(y) > [1] 178.9667 > plot (y)

Lenguaje M (MATLAB).

El lenguaje de programación M fue creado en 1970 para proporcionar un sencillo acceso al software de matrices LINPACK y EISPACK sin tener que usar Fortran. Fue creado por el matemático y programador de computadoras Cleve Moler en 1984, surgiendo la primera versión con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de álgebra lineal y análisis numérico, sin necesidad de escribir programas en dicho lenguaje. MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es una herramienta de software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows, Mac OS X y GNU/Linux .

Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulación multidominio) y GUIDE (editor de interfaces de usuario - GUI). Además, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets). Es un software muy usado en universidades y centros de investigación y desarrollo.

Sintaxis

MATLAB es un programa de cálculo numérico diseñado para trabajar con matrices. Por tanto, será más eficiente si se diseñan los algoritmos en términos de matrices y vectores

Ejemplos

Hello World Éste es el tradicional programa Hola && nada % Muestra el mensaje. Hola mundo </source>

Diseño de filtros digitales

En este ejemplo se diseña un filtro digital paso bajo de Butterworth y se muestra el módulo

de su espectro además incluimos otro ejemplo de un tren de deltas para el análisis espectral:

close all clear all

% Cierra todas las ventanas. % Borra todas las variables del

espacio de trabajo. clc

% Limpia la pantalla.

Fc=200;

% Frecuencia de corte.

Fm=1000;

% Frecuencia de muestreo.

BT=100;

% Banda de transición.

Rs=40;

% Ganancias.

rs=10^(-Rs/20);

Rp=2;

rp=(10^(Rp/20)-1)/(10^(Rp/20)+1);

[n1b,wn1]=buttord(2*Fc/Fm,2*(Fc+BT)/Fm,Rp,Rs);

% Orden del filtro (función buttord).

[B1,A1]=butter(n1b,wn1);

% Coeficientes del filtro (función

butter).

h1=freqz(B1,A1);

% Respuesta en frecuencia (función

freqz).

plot(abs(h1))

% Representación de la respuesta.

Lenguaje PL/SQL.

(Procedural Language/Structured Query Language) Es Un lenguaje de propósito general orientado a la inclusión de sentencias SQL Estructura del código PL/SQL. Bloques:

DECLARE <variable,tipo> BEGIN sentencias PL/SQL END; Los ficheros terminan con el carácter / Uso de SHOW ERRORS.

PL/SQL soportará todas las consultas, ya que la manipulación de datos que se usa es la misma que en SQL, incluyendo nuevas características:

El manejo de variables.

Estructuras modulares.

Estructuras de control de flujo y toma de decisiones.

Control de excepciones.

El lenguaje PL/SQL está incorporado en:

Servidor de la base de datos.

Herramientas de Oracle (Forms, Reports,

).

Bloques

Con PL/SQL se pueden construir distintos tipos de programas: procedimientos, funciones y bloques anónimos, paquetes, etc. Todos ellos tienen en común una estructura básica denominada bloque.

Un bloque tiene 3 zonas:

Zona de declaraciones: donde se declaran objectos locales. Suele ir precedida por la cláusula declare (o is o as en los procedimientos y funciones). Un conjunto de instrucciones precedido por la cláusula BEGIN Zona de excepciones: es una zona opcional precedida por la cláusula EXCEPTION, donde

se gestionan las excepciones. El formato genérico de un bloque es el siguiente:

[ DECLARE <declaraciones>] BEGIN <instrucciones> [EXCEPTION <gestión de excepciones>] END;

Las únicas cláusulas obligatorias son BEGIN y END. Antes de hacer ningún bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql *PLUS set serveroutput on;

Tipo de dato / Sintaxis

Oracle 8i

Oracle 9i

Descripción

   

Donde p es la precisión y e la escala.

dec(p, e)

La precisión máxima es de 38 dígitos.

Por ejemplo: dec(3,1) es un número que tiene 2 dígitos antes del decimal y un dígito después del decimal.

   

Donde p es la precisión y e la escala.

decimal(p, e)

La precisión máxima es de 38 dígitos.

Por ejemplo: decimal(3,1) es un número que tiene 2 dígitos antes del decimal y un dígito después del decimal.

double

precision

float

La precisión máxima es de 38 decimales.

 

int

integer

numeric(p, e)

La precisión máxima es de 38 dígitos.

Donde p es la precisión y e la escala.

   

Por ejemplo: numeric(7,2) es un número que tiene 5 dígitos antes del decimal y 2 dígitos después del decimal.

 
   

Donde p es la precisión y e la escala.

number(p, e)

La precisión máxima es de 38 dígitos.

Por ejemplo: number(7,2) es un número que tiene 5 dígitos antes del decimal y 2 dígitos después del decimal.

real

smallint

 

Hasta 32767 bytes en PLSQL.

Donde tamaño es el número de

 

char (tamaño)

Hasta 2000 bytes en Oracle 8i/9i.

caracteres a almacenar. Son cadenas de ancho fijo. Se rellena con espacios.

 

Hasta 32767 bytes en PLSQL.

 

varchar2

Donde tamaño es el número de caracteres a almacenar. Son

(tamaño)

Hasta 4000 bytes en Oracle 8i/9.i

cadenas de ancho variable.

long

Hasta 2 gigabytes.

Son cadenas de ancho variable.

 

Hasta 32767 bytes en PLSQL.

   

raw

Hasta 2000 bytes en Oracle 8i/9i.

Son cadenas binarias de ancho variable.

long raw

Hasta 2 gigabytes.

Son cadenas binarias de ancho variable.

date

Una fecha entre el 1 de enero de 4712 a. C. y el 31 de diciembre de 9999 d. C.

 
   

fractional

   

seconds

Incluye año, mes día, hora,

timestamp

(fractional

No soportado

precision debe

minutos y segundos.

seconds

por Oracle 8i.

ser un número

precision)

entre 0 y 9. (El valor por defecto es 6)

Por ejemplo: timestamp(6)

   

fractional

Incluye año, mes día, hora, minutos y segundos; con un

timestamp

(fractional

seconds

precision)

No soportado por Oracle 8i.

seconds

precision debe

valor de desplazamiento de zona horaria.

with time

zone

ser un número entre 0 y 9. (El

valor por defecto es 6)

Por ejemplo: timestamp(5) with time zone

   

fractional

Incluye año, mes día, hora, minutos y segundos; con una

 

timestamp

(fractional

seconds

No soportado

seconds

precision debe

zona horaria expresada como la zona horaria actual.

precision)

por Oracle 8i.

ser un número

with local

entre 0 y 9. (El

Por ejemplo: timestamp(4) with

time zone

valor por defecto es 6)

local time zone

   

year precision

Período almacenado en años y

interval year

debe ser un

meses.

(year

No soportado

número entre 0

precision) to

por Oracle 8i.

y 9. (El valor

Por ejemplo: interval year(4) to

month

por defecto es

month

2)

interval day (day precisionel bloque en el fichero de la base de datos;

Datos binarios de ancho fijo. Cada registro

 

RRRR es la fila del bloque; FFFFF es el fichero de la base de datos.

de la base de datos tiene una dirección física o rowid.

urowid

Rowid universal. Donde tamaño

[tamaño]

Hasta 2000 bytes.

es opcional.

boolean

Válido en PLSQL, este tipo de datos no existe en Oracle 8i/9i.

 

nchar

Hasta 32767 bytes en PLSQL.

Donde tamaño es el número de

(tamaño)

Hasta 2000 bytes en Oracle 8i/9i.

caracteres a almacenar. Cadena NLS de ancho fijo.

nvarchar2

Hasta 32767 bytes en PLSQL.

Donde tamaño es el número de

(tamaño)

Hasta 4000 bytes en Oracle 8i/9i.

caracteres a almacenar. Cadena NLS de ancho variable.

bfile

Hasta 4 gigabytes.

Localizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos.

 

blob

Hasta 4 gigabytes.

Localizadores LOB apuntan a un gran objeto binario dentro de la base de datos.

clob

Hasta 4 gigabytes.

Localizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos.

nclob

Hasta 4 gigabytes.

Localizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos.

Lenguaje SAS.

SAS es un lenguaje de programación desarrollado por SAS Institute a finales de los años sesenta. Existen dos intérpretes de dicho lenguaje: uno desarrollado por SAS Institute y otro por la empresa World Programming. Apareció en 1971. Diseñado por SAS Institute Implementaciones SAS Institute, World Programming.

Influido porPL/I. Posee una sintaxis inspirada en la de implementó el primer intérprete.

PL/I, lenguaje

en

el

que

se

El lenguaje SAS opera principalmente sobre tablas de datos: puede leerlas, transformarlas, combinarlas, resumirlas, crear informes a partir de ellas, etc. El núcleo del lenguaje (conocido habitualmente como SAS Base) incluye:

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de

 

datos.

Procedimientos enlazarlas, etc.

de

manipulación

de

datos

que

permiten

ordenar

tablas,

Un intérprete de SQL.

 

Un superlenguaje de macros.

 
 

Algunas de las características adicionales del lenguaje de programación SAS son las siguientes:

Las

palabras clave no están

reservadas, esto

implica

que

se

puede usar

 

cualquier nombre para un identificador, por eje. una variable se puede llamar else, aunque esta palabra tiene un significado semántico.

El lenguaje se considera ambiguo, esto implica que la interpretación de las instrucciones depende de instrucciones previas.

El lenguaje no se puede describir a través de una gramática de contexto libre Gramática de contexto libre.

El análisis léxico del lenguaje depende del contexto. Analizador léxico

 

Un

paso data

que crea

el

un conjunto

de datos,

copia,

a

partir

de

origen,

filtrando los casos en los que las ventas son mayores de 100000:

DATA copia; SET origen; WHERE ventas > 100000; RUN;

Otro ejemplo usando macros:

%macro brol(max); %do i=1 %to max;

PROC IMPORT OUT= WORK.origine DATAFILE= "U:\temp\origine.xls" DBMS=EXCEL REPLACE; SHEET="vente&i"; GETNAMES=YES; MIXED=YES; SCANTEXT=YES; USEDATE=YES; SCANTIME=YES;

RUN;

%end;

%mend;

%brol(4).

Lenguaje Logo.

Logo

es

un

lenguaje de programación

de

alto nivel,

en

parte funcional, en parte

estructurado; de muy fácil aprendizaje, razón por la cual suele ser el lenguaje de programación preferido para trabajar con niños y jóvenes. Fue diseñado con fines didácticos por Danny Bobrow, Wally Feurzeig y Seymour Papert, los cuales se basaron en las características del lenguaje Lisp. Es un lenguaje de programación; es un lenguaje de computadora completo derivado de LISP (el lenguaje más prominente para el tratamiento de temas de inteligencia artificial). Sin embargo, y más importante, Logo es un lenguaje para aprender. Es una herramienta útil para enseñar el proceso de aprendizaje y de pensamiento.

Logo provee un ambiente donde los estudiantes asumen el rol de maestros. Y, como maestros, ellos deben:

entender el conocimiento que debe ser enseñado planear un método para impartir este conocimiento dividir el conocimiento en trozos pequeños y entendibles saber cómo comunicar el conocimiento claramente establecer este nuevo conocimiento como fundamento para aprendizaje futuro estar al tanto y construir sobre el conocimiento que el aprendiz (la computadora) ya posee ser receptivo a explorar nuevas ideas mientras van apareciendo responder a los malentendidos y errores del aprendiz (la computadora)

Los estudiantes logran esto usando Logo así:

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizándolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequeña tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el método utilizado

Logo no está limitado a un tópico en particular o a una materia específica. Sin embargo, es más comúnmente utilizado para la exploración de las Matemáticas ya que los gráficos de tortuga de Logo proveen una ambiente naturalmente matemático. Debido a que la tortuga se mueve una determinada distancia y gira un número dado de grados, el estudio de geometría mediante la construcción e investigación de polígonos y figuras hace de Logo una herramienta de aprendizaje poderosa.

La característica más conocida de Logo es la tortuga, un cursor gráfico usado para crear dibujos. Aún los niños pequeños rápidamente aprenden a mover y girar la tortuga usando comandos intuitivos y fáciles de recordar. Por ejemplo, al escribir avanza 50 la tortuga se mueve hacia adelante 50 pixels (puntos de pantalla). Al escribir giraderecha 90 la tortuga gira (en el sentido de las agujas del reloj) 90 grados. Mediante la combinación de estos comandos es fácil dibujar un cuadrado.

Avanza 50 (También se puede abreviar avanza como "av" ) giraderecha 90 (Se puede abreviar giraderecha como "gd" ) avanza 50 giraderecha 90 avanza 50 giraderecha 90 avanza 50 giraderecha 90

Cuando varios comandos forman un patrón estos pueden sen combinados usando repite. Aquí está el mismo cuadrado dibujado usando una sola línea de instrucciones:

repite 4 [avanza 50 giraderecha 90].

Lenguaje LISP.

El LISP es un lenguaje de programación creado por el profesor John McCarthy a finales de los años 50. John McCarthy quiso desarrollar un lenguaje que mostrara la información estructurada en listas en las que se pudieran gestionar esta. De ahí el nombre que le dio a este lenguaje, Lisp (List-Processing), porque fue creado principalmente para el procesamiento de listas.

Con el trascurso del tiempo el Lisp dio origen a varios dialectos. Entre los más importantes podemos citar a: el MACLISP, COMMONLISP, INTERLISP, ZETALISP, etc. De todos ellos el COMMONLISP se está consolidando como el estándar.

El Lisp es un lenguaje funcional que se apoya en la utilización de funciones matemáticas para el control de los datos. Pero el elemento fundamental en el Lisp es la lista. Y desde el punto de vista más amplio del término. Cada función del lisp y cada programa que generemos con él vienen dado en forma de lista. Por esta razón los datos no se pueden diferenciarse sintácticamente de los programas. El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva, de forma que la mayoría de las funciones nos devuelven una lista que es el resultado de alguna transformación de otra que recibió, pero sin cambiar a esta (la que recibió).

Una de las razones por las que el Lisp está especialmente dotado para la programación en inteligencia artificial (IA), es precisamente, porque su código y todos los datos tienen la misma estructura, en forma de lista. El lisp fue uno de los primeros lenguajes en manejar las excepciones con los comandos catch y throw. Alrededor de 1956 McCarthy entendió el papel central de un lenguaje de programación para su objetivo científico - la inteligencia artificial.

Listas

El elemento fundamental en Lisp es la lista, en el sentido más amplio del término, pues tanto los datos como los programas son listas. De ahí viene su nombre, pues Lisp es un acrónimo de "LIStProcessing". Las listas en LISP están delimitadas por paréntesis. De aquí viene el chiste del significado de LISP: "LostInStupidParentheses”

Ejemplos

Hola mundo

(format t "¡Hola, mundo!")

Trabajando con listas

Definición de la función:

(defun vacia (l) (cond ((null l) 1) (t 0)))

Llamada a la función:

(vacia '(1 3 4)) (vacia '())

; si la lista esta vacia devuelve 1 ; en otro caso (lista llena) devuelve 0

; La lista no esta vacia, devolvería 0 ; La lista esta vacia, devolvería 1

30Lenguaje RPG.

RPG es un lenguaje de programación propio de IBM que está orientado al desarrollo de aplicaciones empresariales, esté lenguaje es muy usado en las plataformas de servidores IBM.

RPG no están popular cómo el resto de los leguajes ¿Por qué? debido a su aplicación y la plataforma dónde esté lenguaje debe ser usado. Es decir, es único para plataformas IBM AS/400 (En un Mainframe propio de IBM de familia Power Systems / usado en grandes empresas). Investigando se supo que la apariencia de esté lenguaje RPG es cómo assembler dónde la estructura se basa en posiciones, columnas y similar a Fox por la dirección de bases de datos.

El compilador de RPG se llama ILE RPG; también es un método reciente de programación en el sistema iSeries. Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS/400. La familia de compiladores ILE incluye: ILE RPG, ILE C, ILE COBOL, ILE CL y VisualAge for C++.

ILE proporciona una base común para:

Gestionar el flujo de programas.

Compartir los recursos.

Utilizar interfaces de programación de aplicaciones (API).

Manejar excepciones durante el tiempo de ejecución de un programa.

Y bueno chicos por ahí vi comentarios dónde mencionaban que la paga por trabajar con RPG es muy buena económicamente hablando.

En 1960 RPG es creado para la familia 1400, pero hasta 1964 no es lanzada la versión final para la IBM 360. Ha sido actualizado en diversas ocasiones, dando origen a las diferentes versiones del lenguaje. Una de las últimas actualizaciones que se ha realizado hasta la

 Utilizar interfaces de programación de aplicaciones (API).  Manejar excepciones durante el tiempo de ejecución1960 RPG es creado para la familia 1400, pero hasta 1964 no es lanzada la versión final para la IBM 360 . Ha sido actualizado en diversas ocasiones, dando origen a las diferentes versiones del lenguaje. Una de las últimas actualizaciones que se ha realizado hasta la fecha es el RPG/IV en 1995 , disponible con los ordenadores IBM de la familia AS/400 . Posteriormente, en 2001 , y con la aparición de la versión 5 del OS/400 , surgió una nueva modificación sobre el lenguaje, soportándose a partir de ese momento la programación en formato libre. Así mismo, se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y códigos de operación. Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho más legible, claro, flexible y moderno. Entre sus principales características podemos destacar las siguientes: 1. Orientado a la producción de informes. 2. Realiza cálculos fácilmente. 3. Emplea hojas de codificación diferentes para la descripción de ficheros, entrada de datos, salida de resultados, etc. Lenguaje Delphi. El Delphi es un lenguaje de programación que se creó con el propósito de agilizar la creación de software basándolo en una programación visual. En el Delphi se utiliza una versión más actual del Pascal conocida como Object Pascal como lenguaje de programación. El Delphi es un lenguaje muy versátil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo, establecer comunicación entre un servidor web y un programa, aplicaciones de consola, conectividad con bases de datos, para realizar aplicaciones visuales, etc. Este lenguaje produce aplicaciones en código máquina, por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programación. " id="pdf-obj-38-24" src="pdf-obj-38-24.jpg">

fecha

es

el

RPG/IV en

1995,

disponible

con

los

ordenadores

IBM

de

la

familia

Posteriormente, en

2001,

y

con

la aparición

de la

versión 5 del OS/400, surgió una nueva modificación sobre el lenguaje, soportándose a partir de ese momento la programación en formato libre. Así mismo, se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y códigos de operación. Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho más legible, claro, flexible y moderno.

Entre sus principales características podemos destacar las siguientes:

  • 1. Orientado a la producción de informes.

  • 2. Realiza cálculos fácilmente.

  • 3. Emplea hojas de codificación diferentes para la descripción de ficheros, entrada de datos, salida de resultados, etc.

Lenguaje Delphi.

El Delphi es un lenguaje de programación que se creó con el propósito de agilizar la creación de software basándolo en una programación visual. En el Delphi se utiliza una versión más actual del Pascal conocida como Object Pascal como lenguaje de programación. El Delphi es un lenguaje muy versátil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo, establecer comunicación entre un servidor web y un programa, aplicaciones de consola, conectividad con bases de datos, para realizar aplicaciones visuales, etc. Este lenguaje produce aplicaciones en código máquina, por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programación.

Ventajas del uso de lenguaje Delphi:

Cualquiera de sus versiones se puede programar DLLs.

En Delphi podemos programar directamente los componentes visuales e incluso crear nuevos controles que hereden características de los ya existentes.

También podemos utilizar en el Delphi componentes visuales de otros lenguajes de programación.

Delphi utiliza el Object Pascal, como ya hemos dicho, que es un lenguaje de programación orientado a objetos, lo que nos permite beneficiarnos de características importantes en programación como son: el encapsulamiento, polimorfismo y la herencia.

Un uso habitual de Delphi, aunque no el único, es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas. Debido a que es una herramienta de propósito múltiple, se usa también para proyectos de casi cualquier tipo, incluyendo aplicaciones de consola, aplicaciones de web (por ejemplo servicios web, CGI, ISAPI, NSAPI, módulos para Apache), servicios COM y DCOM, y servicios del sistema operativo. Entre las aplicaciones más populares actualmente destaca Skype, un programa de telefonía por IP.

Delphi inicialmente sólo producía ejecutables binarios para Windows: Delphi 1 para Win16 y con Delphi 2 se introdujo Win32.

Bases de Datos:

Una de las principales características y ventajas de Delphi es su capacidad para desarrollar aplicaciones con conectividad a bases de datos de diferentes fabricantes. El programador de Delphi cuenta con una gran cantidad de componentes para realizar la conexión, manipulación, presentación y captura de los datos, algunos de ellos liberados bajo licencias de código abierto o gratuito.

Eventos de Ejecución:

Delphi permite de manera sencilla ejecutar trozos de código en respuesta a acciones o eventos (sucesos) que ocurren durante el tiempo que un programa se ejecuta. Por ejemplo, cuando se presiona un botón, la VCL captura la notificación estándar de Windows, y detecta si hay algún método asociado al evento OnClick del botón.

Lenguaje D.

Apareció en

2011

Diseñado por

Walter Bright, Andrei Alexandrescu (desde 2006)

Última versión estable

2.064 / 1.0752 3 (2 de agosto de 2012; hace 3 años4 )

Tipo de dato

Fuerte, Estático

Implementaciones

DMD, GDC, LDC

Influido por

C++, C, C#, Java, Eiffel, Python, Ruby

Ha influido a

MiniD, DScript, Vala, Qore, Swift5

Sistema operativo

DMD: Unix-like (FreeBSD, Linux etc) , Windows, OS

D es un lenguaje de programación de uso general desarrollado por Walter Bright cuya primera versión apareció en 1999. Se origina como un rediseño de C++, con un enfoque más pragmático, pero no es un lenguaje puramente derivado del anterior. D ha mantenido algunas características de C++ y también está influido por otros conceptos de otros lenguajes como Java, C# y Eiffel. Una versión estable fue lanzada el 2 de enero de 2007.

D está siendo diseñado con lecciones aprendidas del uso de C++ en vez de ser diseñado desde una perspectiva teórica. Aunque usa muchos de los conceptos de C/C++ también descarta algunos, y por lo tanto no es compatible con código escrito en C o C++. D retiene la habilidad de C++ de hacer código de bajo nivel, permitiendo incluir código en ensamblador. La herencia múltiple de C++ es reemplazada por herencia simple e interfaces y 'mixins'. La sintaxis de declaración y la sintaxis para las expresiones se parecen a las de C++.

El soporte del lenguaje ensamblador demuestra una de las diferencias entre D con respecto a otros lenguajes como Java y C#. Esto permite incluir código específico de la máquina con código D, una técnica comúnmente usada por programadores de software de sistema para acceder a características de bajo nivel necesarias para interactuar directamente con el hardware, permitiendo escribir software como sistemas operativos y drivers.

D incluye soporte para comentarios de documentación, pero hasta ahora sólo el compilador entregado por Digital Mars implementa un generador de documentación.

Orientada a objetos

La programación orientada a objetos está basada en herencia simple, con todas las clases derivadas de la clase Object. D no soporta herencia múltiple; en vez de eso, usa interfaces parecidas a las de Java, que son comparables a las clases abstractas de C++.

Metaprogramación

Metaprogramación es soportada por una combinación de plantillas, ejecución de funciones en tiempo de compilación, tuplas y 'mixins' de cadena. Soporta CTFE (evaluación de funciones en tiempo de compilación).

Lenguaje Pascal.

Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo.

Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:

1. El código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica.

2. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.

El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.

El lenguaje de programación en Pascal, es un lenguaje de alto nivel, y de propósito general, lo cual quiere decir que se puede utilizar para cualquier tipo de propósitos. El lenguaje de programación en Pascal se considera un lenguaje estructurado, sencillo y práctico para todos aquellos usuarios que se inician en el mundo de la programación, ya que fue creado con fines de aprendizaje. Al ser un Pascal lenguaje estructurado, sirve de base para cualquier otro lenguaje de alto nivel, por estas características es utilizado en las universidades e institutos de educación para inicializar a los futuros ingenieros en sistemas o informática.

El lenguaje de programación Pascal, es idóneo en el estudio y definición de las estructuras de datos, su fácil definición lo hace manejable para un programador novato. Con la programación en Pascal, se pueden realizar desde programas formales, rutinas, utilitarios, hasta cualquier clase de video juegos.

Programación en Pascal es un lenguaje de sintaxis sencilla, muy estructurado y que comprueba exhaustivamente todo tipo de datos. El mejor de los propósitos de programación en Pascal es que enseña buenas formas de programación, con lo cual se utiliza mucho en la enseñanza, por todos los motivos nominados anteriormente, por su sencillez, su estructuración y su facilidad de lectura y entendimiento. Existen varios dialectos locales de programación en Pascal, entre ellas el Turbo Pascal, el cual acepta instrucciones de Pascal.

IMPLEMENTACIONES Las primeras versiones del compilador de Pascal, entre ellas la más distribuida fue UCSD Pascal, traducían el lenguaje en código para una máquina virtual llamada máquina-P. La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de máquina solo hacía falta re implementar la máquina-P. Como consecuencia de esto, solo una pequeña parte del intérprete tenía que ser reescrita hacia muchas arquitecturas. En los años 1980, Anders Hejlsberg escribió el compilador Blue Label Pascal para la Nascom-2. Más tarde fue a trabajar para Borland y reescribió su compilador que se convirtió en Turbo Pascal para la IBM PC. Este nuevo compilador se vendió por $49, un precio orientado a la distribución masiva. El económico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzó a utilizarlo principalmente en el IBM PC. En busca de un lenguaje estructurado muchos aficionados al PC reemplazaron el BASIC por este producto. Dado que Turbo Pascal sólo estaba disponible para una arquitectura, traducía directamente hacia el código máquina del Intel 8088, logrando construir programas que se ejecutaban mucho más rápidamente que los producidos en los esquemas interpretados.

Lenguaje Perl.

Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado bourne shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. Es un lenguaje de

programación muy utilizado para construir aplicaciones CGI para el web. Perl es un acrónimo de Practical Extracting and Reporting Languaje, que viene a indicar que se trata de un lenguaje de programación muy práctico para extraer información de archivos de texto y generar informes a partir del contendido de los ficheros.

Es un lenguaje libre de uso, eso quiere decir que es gratuito. Antes estaba muy asociado a la plataforma Uníx, pero en la actualidad está disponible en otros sistemas operativos como Windows.

Perl es un lenguaje de programación interpretado, al igual que muchos otros lenguajes de Internet como Javascript o ASP. Esto quiere decir que el código de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el código y se pone en marcha interpretando lo que hay escrito. Además es extensible a partir de otros lenguajes, ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes. También desde otros lenguajes podremos ejecutar código Perl.

Perl está inspirado a partir de lenguajes como C, sh, awk y sed (algunos provenientes de los sistemas Uníx), pero está enfocado a ser más práctico y fácil que estos últimos. Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendrá menos problemas en entenderlo y utilizarlo rápidamente. Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamaño de los datos con los que trabaja, el límite lo pone la memoria que en ese momento se encuentre disponible. Si queremos trabajar con Perl será necesario tener instalado el intérprete del lenguaje. A partir de ese momento podemos ejecutar CGIs en nuestros servidores web. El proceso para conseguirlo puede variar de unos servidores a otros, pero se suelen colocar en un directorio especial del servidor llamado cgi-bin donde hemos colocado los correspondientes permisos CGI. Además, los archivos con el código también deberán tener permiso de ejecución.

Tipos de datos

Perl tiene tres tipos de datos: escalares, listas y hashes:

Un

escalar

es

un

solo valor;

puede ser un número,

un

string (cadena de

caracteres) o una referencia

 

Una lista es una colección ordenada de escalares (una variable que almacena una lista se llama array)

Un hash, o memoria asociativa, es un mapeo de strings a escalares; los strings se llaman claves y los escalares valores.

Todas las variables están precedidas por un sigilo, que identifica el tipo de dato que es accedido (no el tipo de dato de la misma variable). Se puede usar el mismo nombre para variables de diferentes tipos, sin que tengan conflictos.

$var

# un escalar

@var

# un array

%var

# un hash

Los números se escriben de la forma usual; los strings están rodeados entre comillas de varias clases.

$n

= 42;

$nombre = "juan";

$color

= 'rojo';

Lenguaje Ruby.

Ruby: Es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python y Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre.

OBJETIVO: El creador del lenguaje, ha dicho que Ruby está diseñado para la productividad y la diversión del desarrollador, siguiendo los principios de una buena interfaz de usuario. Sostiene que el diseño de sistemas necesita enfatizar las necesidades humanas más que las de la máquina. Ruby sigue el "principio de la menor sorpresa", lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusión de los usuarios experimentados.

SEMÁNTICA

Ruby es orientado a objetos: todos los tipos de datos son un objeto, incluidas las clases y tipos que otros lenguajes definen como primitivas, (como enteros, booleanos, etcétera). Este lenguaje soporta herencia con enlace dinámico, mixins y métodos singleton (pertenecientes y definidos por una sola instancia más que definidos por la clase). A pesar que Ruby no soporta herencia múltiple, las clases pueden importar módulos como mixins. Ruby ha sido descrito como un lenguaje de programación multiparadigma:

permite programación procedural, con orientada a objetos o funcionalmente. Además de soporte para hilos de ejecución gestionados por el intérprete. Este lenguaje tiene tipado dinámico y soporta polimorfismo de tipos (permite tratar a subclases utilizando la interfaz de la clase padre). No requiere polimorfismo de funciones al no ser fuertemente tipado.

CARACTERÍSTICAS

Orientada a objetos Cuatro niveles de ámbito de variable: global, clase, instancia y local Manejo de excepciones Altamente por table Amplia librería estándar Soporta alteración de objetos en tiempo de ejecución.

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python. La definición de clases y métodos está definida por palabras claves. Sin embargo, en Perl, las variables no llevan prefijos. Cuando se usa, un prefijo indica el ámbito de las variables. La mayor diferencia con C y Perl es que

las palabras clave son usadas para definir bloques de código sin llaves. Los saltos de línea son significativos y son interpretados como el final de una sentencia; el punto y coma tiene el mismo uso. De forma diferente que Python, la indentación no es significativa.

Ruby es un lenguaje de scripts, moderno y orientado a objetos, que combina una importante flexibilidad con alta productividad Su alcance parece ilimitado y hoy se encuentra presente en aplicaciones que van desde el desarrollo web hasta la simulación de ambientes complejos. Promueve las mejores prácticas de programación sin perder usabilidad. Mediante su uso se pueden complementar las características de la lógica imperativa con la lógica funcional.

Permite utilizar la más simple expresión para un programa o algoritmo; esto sumado a las actuales prácticas ágiles permite desarrollar en forma amigable.

Lenguaje Transact-SQL.

Transact-SQL también es conocido por sus abreviatura como T-SQL, como definición es una extensión del SQL Microsoft junto son Sybase. Lo que conocemos a SQL como el lenguaje de búsqueda estructurado lo que viene hacer T-SQL es expander los estándares de SQL no incluyendo programación procedural, como algunas otras funciones para matemáticas, fechas, etc.

T-SQL es un lenguaje sumamente potente que nos ayuda a definir tareas mientras trabajamos con bases de datos. Debido a que este lenguaje tiene algunas restricciones en el propio lenguaje casi siempre lo vemos utilizado en la creación de los procedimientos almacenados, funciones de usuario y también en los triggers. Podemos hacer uso de T-SQL en lenguajes de programación como puede ser Visual Basic. NET, C, Java. También lo podemos ejecutar en un entorno SQL Server Management Studio. Se dice que T-SQL es un lenguaje muy parecido al lenguaje hablado.

Un ejemplo de T- SQL:

SELECT * FROM cities WHERE name LIKE '%an%';

TRANSACT-SQL es un lenguaje muy potente que nos permite definir casi cualquier tarea que queramos efectuar sobre la base de datos; incluye características propias de cualquier lenguaje de programación, características que nos permiten definir la lógica necesaria para el tratamiento de la información:

• Tipos de datos. • Definición de variables. • Estructuras de control de flujo. • Gestión de excepciones. • Funciones predefinidas. Sin embargo también nos permite:

• Crear interfaces de usuario. • Crear aplicaciones ejecutables, sino elementos que en algún momento llegarán al servidor de datos y serán ejecutados. Debido a estas restricciones se emplea generalmente para crear procedimientos almacenados, triggers y funciones de usuario. Puede ser utilizado como cualquier SQL como lenguaje embebido en aplicaciones desarrolladas en otros lenguajes de programación como Visual Basic, C, Java, etc. Y por supuesto los lenguajes incluidos en la plataforma .NET.

También lo podremos ejecutar directamente de manera interactiva, por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio).

Lenguaje JavaScript.

JavaScript (abreviado comúnmente "JS") es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, [3] basado en prototipos, imperativo, débilmente tipado y dinámico.

JavaScript fue desarrollado originalmente por Brendan Eich de Netscape con el nombre de Mocha, el cual fue renombrado posteriormente a LiveScript, para finalmente quedar como JavaScript. El cambio de nombre coincidió aproximadamente con el momento en que Netscape agregó compatibilidad con la tecnología Java en su navegador web Netscape Navigator en la versión 2.002 en diciembre de 1995.

Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas [4] aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo. JavaScript se diseñó con una sintaxis similar al C, aunque adopta nombres y convenciones del lenguaje de programación Java. Sin embargo Java y JavaScript no están relacionados y tienen semánticas y propósitos diferentes.

Todos los navegadores modernos interpretan el código JavaScript integrado en las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del Document Object Model (DOM). Tradicionalmente se venía utilizando en páginas web HTML para realizar operaciones y únicamente en el marco de la aplicación cliente, sin acceso a funciones del servidor. Actualmente es ampliamente utilizado para enviar y recibir información del servidor junto con ayuda de otras tecnologías como AJAX. JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargándose junto con el código HTML. Desde el lanzamiento en junio de 1997 del estándar ECMAScript 1, han existido las versiones 2, 3 y 5, que es la más usada actualmente (la 4 se abandonó [5] ). En junio de 2015 se cerró y publicó la versión ECMAScript 6.

Sintaxis y semántica

A partir del 2011, la última versión del lenguaje es JavaScript 1.8.5. Es un superconjunto de la especificación ECMAScript (ECMA-262) Edición 3. Extensiones del lenguaje, que incluyen

compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y características experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript, documentadas aquí. []

Ejemplos sencillos

Las variables en JavaScript se definen usando la palabra clave var: [35]

var x; // define la variable x, aunque no tiene ningún valor asignado por defecto var y = 2; // define la variable y y le asigna el valor 2 a ella

A considerar los barras diagonales.

comentarios en el ejemplo de arriba, los cuales

van precedidos con 2

No existen funcionalidades para I/O incluidas en el lenguaje; el entorno de ejecución ya lo proporciona. La especificación ECMAScript en su edición 5.1 hace mención:

en efecto, no existen provisiones en esta especificación para entrada de datos externos o

... salida para resultados computados. Sin embargo, la mayoría de los entornos de ejecución tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida

de la consola de depuración. He aquí un simple programa que imprime

“Hello world!”:

console.log("Hello world!");

Lenguaje Phayton.

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.

Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma. Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License, [1] que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba. El nombre del lenguaje proviene de la afición de su creador por los humoristas británicos Monty Python. [4] Van Rossum es el principal

autor de Python, y su continuo rol central en decidir la dirección de Python es reconocido,

refiriéndose a él como Benevolente Dictador Vitalicio (en inglés: Benevolent Dictator for

Life, BDFL).

En 1991, van Rossum publicó el código de la versión 0.9.0 en alt.sources.

Python es un lenguaje de programación multiparadigma. Esto significa que más que forzar

a los programadores a adoptar un estilo particular de programación, permite varios estilos:

Otros paradigmas están soportados mediante el uso de extensiones. Python usa tipado

dinámico y conteo de referencias para la administración de memoria. Una característica

importante de Python es la resolución dinámica de nombres; es decir, lo que enlaza un

método y un nombre de variable durante la ejecución del programa (también llamado

enlace dinámico de métodos).

Elementos del lenguaje

Python fue diseñado para ser leído con facilidad. Una de sus características es el uso de

palabras donde otros lenguajes utilizarían símbolos. Por ejemplo, los operadores lógicos !, ||

y && en Python se escriben not, or y and, respectivamente.

El contenido de los bloques de código (bucles, funciones, clases, etc.) es delimitado

mediante espacios o tabuladores, conocidos como indentación, antes de cada línea de

órdenes pertenecientes al bloque. [18] Python se diferencia así de otros lenguajes de

programación que mantienen como costumbre declarar los bloques mediante un conjunto

de caracteres, normalmente entre llaves {}. [19] [20] Se pueden utilizar tanto espacios como

tabuladores para indentar el código, pero se recomienda no mezclarlos. [21]

Función factorial en C (indentación opcional)

Función factorial en Python (indentación

obligatoria)

factorial(int x)

factorial(x):

 

if x == 0:

if (x == 0)

return 1

return 1;

else:

else

return x * factorial(x - 1)

return x * factorial(x - 1);

Lenguaje Visual Basic.

Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar hoy

en día. Dicho lenguaje nace del BASIC (Beginner´s All-purpose Symbolic Instruction Code)

que fue creado en su versión original en el Dartmouth College, con el propósito de servir a

aquellas personas que estaban interesadas en iniciarse en algún lenguaje de programación.

Luego de sufrir varias modificaciones, en el año 1978 se estableció el BASIC estándar. La

sencillez del lenguaje ganó el desprecio de los programadores avanzados por considerarlo

"un lenguaje para principiantes".

Primero fue GW-BASIC, luego se transformó en QuickBASIC y actualmente se lo conoce

como Visual Basic y la versión más reciente es la 6 que se incluye en el paquete Visual

Studio 6 de Microsoft. Esta versión combina la sencillez del BASIC con un poderoso lenguaje

de programación Visual que juntos permiten desarrollar robustos programas de 32 bits para

Windows. Esta fusión de sencillez y la estética permitió ampliar mucho más el monopolio de

Microsoft, ya que el lenguaje sólo es compatible con Windows, un sistema operativo de la

misma empresa.

Visual Basic ya no es más "un lenguaje para principiantes" sino que es una perfecta

alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones

compatibles con Windows.

¿Qué es Visual Basic?

Diseñador de entorno de datos: Es posible generar, de manera automática, conectividad

entre controles y datos mediante la acción de arrastrar y colocar sobre formularios o

Los Objetos Actives son una nueva tecnología de acceso a datos mediante la acción de

arrastrar y colocar sobre formularios o informes.

Características de Visual Basic.

  • Barra de título:

actualmente

muestra el nombre del proyecto y del formulario q se está diseñando

  • Barra de menús: agrupa los menús despegables que contienes todas las operaciones que

pueden llevarse a cabo con Visual Basic 6.0.

  • Barra de herramientas estándar: contienen

los botones

que

se

utilizan con

mayor

frecuencia cuando se trabaja con un proyecto. Simplifica la elección de opciones de los

menús Archivo, Edición, Ver y Ejecutar; además, en el área derecha presenta la ubicación

(coordenadas) y el tamaño del objeto seleccionado

  • Ventana de formulario: es el área donde se diseña la interfaz gráfica, es decir, es donde

se inserta electo gráficos, como botones, imágenes, casilla de verificación, cuadros de

listas, etc.

Cuadro de herramientas: presenta todos los controles necesarios para diseñar una

aplicación, como cuadros de texto, etiquetas, cuadros de listas, botones de comandos, etc.

Ventana

de

proyecto: muestra los elementos involucrados en el proyecto, como

formularios, módulos, controles oxc, etc. Cada elemento puede seleccionarse en forma

independiente para su edición.

  • Ventana de posición del formulario: muestra la ubicación que tendrá el formulario en la

pantalla, cuando ejecute la aplicación. Esta ubicación puede cambiarse si se hace clic con

el botón izquierdo del mouse.

  • La Ventana propiedades muestra todas las propiedades del control actualmente

seleccionado, en este caso muestra las propiedades del Form1, luego podemos ver que

abajo dice "Form1 Form", lo que está en negrita es el nombre del objeto, y lo que le

sigue es el tipo de objeto, en este caso es un Formulario (Form).

Lenguaje PHP.

PHP es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que

puede ser incrustado en HTML. Es popular porque un gran número de páginas y portales

web están creadas con PHP. Código abierto significa que es de uso libre y gratuito para

todos los programadores que quieran usarlo. Incrustado en HTML significa que en un mismo

archivo vamos a poder combinar código PHP con código HTML, siguiendo unas reglas.

PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página estática

a aquella cuyos contenidos permanecen siempre igual, mientras que llamamos páginas

dinámicas a aquellas cuyo contenido no es el mismo siempre. Por ejemplo, los contenidos

pueden cambiar en base a los cambios que haya en una base de datos, de búsquedas o

aportaciones de los usuarios, etc. ¿Cómo trabaja PHP? El lenguaje PHP se procesa en

servidores, que son potentes ordenadores con un software y hardware especial. Cuando se

escribe una dirección tipo http://www.aprenderaprogramar.com/index.php en un navegador

web como Internet Explorer, Firefox o Chrome, ¿qué ocurre? Se envían los datos de la

solicitud al servidor que los procesa, reúne los datos (por eso decimos que es un proceso

dinámico) y el servidor lo que devuelve es una página HTML como si fuera estática.

 

El esquema es: Petición de página web al servidor --> El servidor recibe la petición, reúne la

información necesaria consultando a bases de datos o a otras páginas webs, otros

servidores, etc --> El servidor responde enviando una página web “normal” (estática) pero

cuya creación ha sido dinámica (realizando procesos de modo que la página web devuelta

 

no siempre es igual).

En resumen:

 

Páginas estáticas: Petición --> Respuesta

 

Páginas dinámicas: Petición --> Procesado y preparación --> Respuesta

En un sitio dinámico, la información generalmente está contenida en una base de datos.

Cada vez que mostramos la página, como por ejemplo una página de noticas, buscamos en

la base de datos las últimas noticias que tenemos ingresadas para mostrar en el navegador

del visitante. Ahora bien, ¿cómo se consigue que la página vaya mostrando noticias

nuevas? Simplemente cargando las mismas en la base de datos, por ejemplo, a través de

un formulario que rellena una persona y que una vez relleno cuando pulsa “Enviar” implica

que lo que haya escrito se guarde en nuestra base de datos. De esta manera, cuando

solicitamos la página web y el servidor consulte la base de datos, encontrará esta nueva

información y mostrará nuestra página de forma distinta a como se veía anteriormente.

 

Por regla general este tipo de lenguaje suele ser utilizado para crear contenido dinámico y

poder interactuar con el usuario.

 

Veamos un ejemplo del contenido de una página web php, que habremos de almacenar en

un archivo que termina con la extensión .php y que contiene texto:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

   

"http://www.w3.org/TR/html4/loose.dtd">

 

<html>