50 lenguajes de programación y sus características

76
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. Elementos básicos . Identificadores: Permiten nombrar módulos, rutinas, datos y etiquetas. Ejemplo: MODULE nombre_módulo PROC nomre_rutina() VAR pos nombre_dato;nombre_etiqueta: - 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: 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:

description

características especiales sobre conocimientos básicos de lenguajes de programación

Transcript of 50 lenguajes de programación y sus características

Page 1: 50 lenguajes de programación y sus características

Lenguaje RAPID (Robotics Application Programming Interactivo Dialogue)

RAPID es un lenguaje de programacioacuten textual de alto nivel desarrollado por la empresa ABB Una aplicacioacuten RAPID consta de un programa y una serie de moacutedulos 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 ejecucioacutenUn conjunto de sub-rutinas Sirven para dividir el programa en partes maacutes pequentildeas a fin de obtener un programa modularLos datos del programa Definen posiciones valores numeacutericos sistemas de coordenadas etc

Elementos baacutesicos

IdentificadoresPermiten nombrar moacutedulos rutinas datos y etiquetas Ejemplo

MODULE nombre_moacuteduloPROC nomre_rutina()

VAR pos nombre_datonombre_etiqueta- El primer caraacutecter es siempre una letra- Longitud maacutexima 16- Diferencia entre mayuacutesculas y minuacutesculas

Espacios y caracteres de fin de liacuteneaRAPID es un lenguaje sin formatos en consecuencia los espacios pueden utilizarse en cualquier parte excepto en identificadores palabras reservadas valores numeacutericos Los identificadores las palabras reservadas y los valores numeacutericos deberaacuten estar separados entre siacute por un espacio un caraacutecter de fin de liacutenea o un tabulador

ComentariosSirven para facilitar la comprensioacuten del programa ocupan una liacutenea entera comenzando con el siacutembolo ldquordquo finaliza con un caraacutecter de fin de liacutenea

Esto es un comentario

Valores de cadenaSecuencia de caracteres entre comillas ldquoEsto es una cadenardquoExpresiones del lenguajeLoacutegicas Devuelven un valor de tipo boolUtilizan los operadores loacutegicos lt gt ltgt = lt= gt= AND OR NOT XOR Ejemplo

DInput(di1) = 1 Doutput(do3) = 0num1 lt num2nombre1 = nombre2Doutput(do1) = 0 AND pos1x gt 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 programacioacuten de paradigma declarativo por el uso de toda la gente que trabaja en el campo de la Inteligencia Artificial (linguumlistas) Es muy simple para aprender y manejar Inicialmente se trataba de un lenguaje totalmente interpretado hasta que en 1983 David HD Warren desarrolloacute un compilador capaz de traducir Prolog en un conjunto de instrucciones de una maacutequina 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 minuacutesculas cadenas de

caracteres entre _ Ejemplos 25 6 _la vida_ lavida pedro instalacioacuten Variables una cadena de caracteres que empieza con una mayuacutescula o con (guillon bajo) Ejemplos X Xxx

Pero 33Un programa PRLOG se compone de una parte de hechos y una parte de reglas Un hecho es la modelizacioacuten de los datossituaciones elementales que se consideran ciertos Un hecho es un teacutermino que tiene todos sus paraacutemetros constantes o evaluables directamente

Ejemplosmadre (ana pedro )gato ( tom )come (tom jerry )esnumero (34343)

PROLOG no estaacute un lenguaje completo de programacioacuten loacutegica sino un lenguaje que intenta la resolucioacuten de las interrogaciones seguacuten las reglas siguientes

Primero se examina los hechos Luego se intenta la aplicacioacuten de la reglas de la primera con El factor indicado hasta la uacuteltima con este factor Se aplica un meacutetodo de back tracking el caso de fracaso (a saber no se puede decidir nada y no hay otra opcioacuten) Una interrogacioacuten sin respuesta se interpreta como falsa

El programa PROLOG siguiente

hermano (pablo ana )hermano (pablo maria )hermano (XY)- hermano (YX)hermano (XZ)- hermano (XY) hermano (YZ)

ExpresionesPROLOG cuenta con operadores para la unificacioacuten y comparacioacuten sea con evaluacioacuten o sea simboacutelica como los siguientes

X is Y unificacioacuten con evaluacioacuten X = Y unificacioacuten simboacutelica X==Y comparacioacuten con evaluacioacuten X == Y comparacioacuten simboacutelica

Listas

La lista es una estructura de datos muy utilizada en la programacioacuten non-numeacuterica Es un conjunto ordenado de elementos y puede tener cualquier dimensioacuten

Una lista vaciacutea [] Una lista con variables [X 1 2 Y]

Lenguaje APL

Antildeo 1961Lugar Estados UnidosCreador Ken IversenDefinicioacuten APL es un lenguaje de programacioacuten interpretado que recibe su nombre de A Programing Language tambieacuten conocido como Array Processing Language desde hace algunos antildeos Uso Su uso estaacute orientado a trabajos con matrices con la que se pueden hacer todo tipo de operaciones loacutegicas o matemaacuteticas 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 tambieacuten al ser interpretado la velocidad de ejecucioacuten es tiacutepicamente maacutes lenta que la de los lenguajes de programacioacuten compilados Este lenguaje de programacioacuten fue usado para el sistema Deep Blue de IBM que vencioacute a Kasparov al ajedrez y su uso para hacer los efectos especiales en la peliacutecula Tron de Walt Disney Su potencia es la mejor de sus armas y podriacuteamos 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 ejecucioacuten otras lo que lo hace muy apropiado para la fabricacioacuten de compiladores e inteacuterpretes La pero parte de este lenguaje es que no usa la notacioacuten ASCII en concreto pues existen muchos maacutes siacutembolos sobre todo letras griegas para el desarrollo de los programas por lo tanto es preciso tener un teclado especial para poder usarloAPL ha sido criticado en cambio por su falta de legibilidad lo que hace difiacutecil modificar programas antiguos (se le ha llamado iroacutenicamente write-only language) Otro defecto importante deriva del uso de siacutembolos propios (letras griegas y otros caracteres auacuten menos convencionales) lo que ademaacutes de dificultar la escritura (al no aparecer en los teclados normales) hace que el coacutedigo sea poco portable ya que cada versioacuten concreta de APL almacena a su modo el coacutedigo fuente (y eso aparte de las habituales diferencias de una implementacioacuten a otra) El propio Iverson junto con Roger Hui ha creado un nuevo lenguaje (J) derivado de APL que usa soacutelo caracteres ASCII

Aplicaciones del APLComo 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 = 46x + 8y + 9z = 74x + 2y + 1z = 2

Basta ejecutar UNA UNICA sentencia de APL cuya sintaxis es4 7 2 [divide] 3 3 ρ 7 4 2 6 8 9 4 2 1

Para obtener inmediatamente el valor resultado para cada variable (x y z)0 11 -02

Tiene la propiedad de que desde una rutina se pueden (en tiempo de ejecucioacuten) crear compilar y ejecutar otras rutinas lo que lo hace tambien muy apropiado para la elaboracioacuten automaacutetica de compiladores e inteacuterpretes Algunas dificultades (poco importantes) radican en que

1 Necesita pegatinas (o marcar con rotulador permanente) en el teclado para poder ver los operadores (siacutembolos 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 ejecucioacuten) su velocidad es tiacutepicamente algo maacutes lenta que la de las aplicaciones con lenguajes de programacioacuten 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 revisioacuten interactiva inmediata

Lenguaje J

Es un nuevo dialecto de APL tambieacuten creado por Ken Iverson Se puede descargar gratuitamente aunque para usarlo como programador hace falta una clave de usuario (la enviacutean gratuitamente por correo electroacutenico despueacutes de rellenar un pequentildeo formulario) Hay versiones para Windows MacOS X Linux y otros sistemas operativos Se distribuye con una amplia documentacioacuten (tambieacuten disponible en el sitio)

El lenguaje de programacioacuten J disentildeado por Kenneth Iverson y Roger Hui en los 90 es una siacutentesis de los lenguajes de programacioacuten APL (disentildeado tambieacuten 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 soacutelo requiere el juego de caracteres baacutesicos 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 programacioacuten de array J es muy conciso y potente y es uacutetil para crear programas en los campos de las matemaacuteticas y de la estadiacutestica especialmente cuando involucran operaciones con matrices A diferencia de muchos lenguajes que soportan la programacioacuten orientada a objetos el flexible esquema de espacio de nombres jeraacuterquico del lenguaje J (donde cada nombre existe en un aacutembito particular) puede ser usado con efectividad como un marco de trabajo para realizar programacioacuten orientada a objetos basada tanto en clases como en instancias Noacutetese que el lenguaje de programacioacuten J no estaacute relacionado con J++ ni su nueva versioacuten J (una versioacuten propietaria del Lenguaje de programacioacuten Java desarrollada por Microsoft)

J es particularmente fuerte en el anaacutelisis matemaacutetico estadiacutestico y loacutegico de los datos Es una potente

herramienta en construccioacuten nueva y mejores soluciones a problemas antiguos e incluso mejor en la buacutesqueda de

soluciones donde el problema no es ya bien conocido J los sistemas tienen

un entorno de desarrollo integrado paquetes de utilidades y bibliotecas estaacutendar consola navegador y extremos delanteros Qt interfaces con otros lenguajes de programacioacuten y aplicaciones graacuteficos integrados memoria asignada de archivos para aplicaciones de datos de alto rendimiento JD

Si usted estaacute interesado en programacioacuten de soluciones a los difiacuteciles problemas de procesamiento de datos

entonces el tiempo que invertir en el aprendizaje de J se se bien pasado

J es un lenguaje de programacioacuten extremadamente potente y sus programas pueden ser muy tersos pero incluso maacutes criacutepticos El programa Hola Mundo en J es Hola Mundo

Esta implementacioacuten de Hola Mundo refleja el uso tradicional de J -- los programas son introducidos durante unasesioacuten del inteacuterprete J y los resultados de las expresiones se muestran de modo interactivo Tambieacuten es posible hacer que scripts en J se puedan ejecutar como programas independientes pero los mecanismos usados para asociar el script con el inteacuterprete son dependientes del sistema En un sistema Unix se podriacutea hacer como sigue

binjcecho Hello world

exit

Lenguaje ActionScript

El ActionScript es un lenguaje de programacioacuten que crea Script (conjunto de instrucciones de un programa) de Flash con el que crear peliacuteculas con elementos interactivos El Flash es un programa para crear animaciones vectoriales para paacuteginas web El ActionScript nos ayuda a crear una peliacutecula en la que el usuario pueda hacer por ejemplo un clic con el ratoacuten o presionar una tecla entonces se ejecuta un determinado Script Como podriacutea ser que se cargue otra peliacutecula El ActionScript quiere conseguir que estas peliacuteculas se comporten exactamente como el usuario determine Para conseguir que las peliacuteculas se comporten como el usuario quiere no es necesario entender todos los posibles usos de esta herramienta de creacioacuten 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 programacioacuten para la creacioacuten de Script orientado a objetos Lo que significa que cuando se dan determinados eventos (por ejemplo un clic del ratoacuten) se producen unas determinadas acciones Para comenzar a crear Script no es necesario tener un conocimiento amplio del ActionScript Por ejemplo algo sencillo seriacutea crear un Script que se lo asignamos a un botoacuten con el que queremos que al ser presionarlo nos cambie el brillo de un clip de peliacutecula Con el ActionScript tambieacuten podemos cambiar el color aumentar o reducir el volumen del sonido etc Pero estas son algunas las posibilidades que tiene este lenguaje de programacioacuten en este campo son muy amplias

EstructuraFlash estaacute compuesto por objetos con su respectiva ruta dentro del swf Cada uno de eacutestos en ActionScript pertenece a una clase (MovieClip botones Vectores (Arrays) etc) que contiene Propiedades y Meacutetodos o Funciones Propiedades Dentro del archivo raiacutez de la clase estaacuten declaradas como variables (alpha useHandCursor length) Meacutetodos o Funciones Dentro del archivo raiacutez de la clase estaacuten declaradas como funciones (stop() gotoAndPlay() getURL())

ActionScript 3

ActionScript 30 ofrece un modelo de la programacioacuten robusto que resultaraacute familiar a los desarrolladores con conocimientos baacutesicos sobre programacioacuten orientada a objetos Algunas de las principales funciones de ActionScript 30 son

Una nueva maacutequina virtual ActionScript denominada AVM2 que utiliza un nuevo conjunto de instrucciones de coacutedigo de bytes y proporciona importantes mejoras de rendimiento

Una base de coacutedigo de compilador maacutes moderna que se ajusta mejor al estaacutendar ECMAScript (ECMA 262) y que realiza mejores optimizaciones que las versiones anteriores del compilador

Una interfaz de programacioacuten de aplicaciones (API) ampliada y mejorada con un control de bajo nivel de los objetos y un auteacutentico modelo orientado a objetos

Un nuacutecleo del lenguaje basado en el proacuteximo borrador de especificacioacuten del lenguaje ECMAScript (ECMA-262) edicioacuten 4

Una API XML basada en la especificacioacuten de ECMAScript para XML (E4X) (ECMA-357 edicioacuten 2) E4X es una extensioacuten del lenguaje ECMAScript que antildeade XML como un tipo de datos nativo del lenguaje

Un modelo de eventos basado en la especificacioacuten de eventos DOM(modelo de objetos de documento)de nivel 3

Mientras que en ActionScript 20 las anotaciones de tipos eran principalmente una ayuda para el desarrollador en tiempo de ejecucioacuten se asignaban los tipos dinaacutemicamente a todos los valores En ActionScript 30 la informacioacuten de tipos se conserva en tiempo de ejecucioacuten y se utiliza con diversos fines Flash Player 9 realiza la comprobacioacuten de tipos en tiempo de ejecucioacuten lo que mejora la seguridad de tipos del sistema La informacioacuten

de tipos tambieacuten se utiliza para especificar variables en representaciones nativas de la maacutequina lo que mejora el rendimiento y reduce el uso de memoria

Lenguaje Erlang

Es un lenguaje funcional y de programacioacuten concurrente fue disentildeado por la compantildeiacutea Ericsson con el propoacutesito de hacer aplicaciones que puedan soportar fallos funcionamiento ininterrumpido aplicaciones distribuidas entre otras cosas

Tiene una caracteriacutestica muy importante el cambio de coacutedigo en caliente el cual se refiere a poder modificar el coacutedigo aun cuando la aplicacioacuten estaacute corriendo Erlang no seguiacutea la filosofiacutea de coacutedigo abierto hasta 1998 cuando Ericsson lo cedioacute como tal Erlang es un lenguaje interpretado aunque tambieacuten se puede compilar usando el compilador HiPE aunque este compilador solo es para algunas plataformas es muy bueno porque pude soportar la concurrencia caracteriacutestica muy distintiva del lenguaje Esta es la paacutegina oficial de HiPE

Es posible que pensemos que entender este proceso de concurrencia es complicado y maacutes auacuten aplicarlo en alguacuten programa pero en Erlang la concurrencia es explicita y no impliacutecita con en otros lenguajes El nombre de Erlang viene de las palabras Ericsson y Language

Erlang lenguaje funcional

Los programa en Erlang estaacuten compuestos de bloques funciones y las identificamos por su nombre y el numero de argumentos de entrada tambieacuten llamado aridad Por ejemplo las funciones multiplicacion2 multiplicacion3 multipicacion4 pueden existir perfectamente juntas y llamaacutendose a cada una seguacuten 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 ) -gtinstruccioacuteninstruccioacutenresultado_a_devolver

Tambieacuten podemos escribir alguna condicioacuten antes de gt podemos poner que si se cumple algo entonces se lleve a cabo determinada instruccioacuten esto lo hacemos con when una forma de implementarlo seriacutea

mi_funcion(dato1 dato2) when dato1 gt 0 -gtY algo muy importante en Erlang aprender a escribir el Hice un programa en Erlang que muestra su caracteriacutestica como lenguaje funcional bueno primero que nada abro el terminal y escribo

cecycecy-desktop~$ emacs -nw geomerl

Las caracteriacutesticas maacutes destacadas de Erlang son

Lenguaje funcional Soporte de concurrencia Tolerancia a fallas Cambio de coacutedigo en caliente Posibilidad de conectar con coacutedigo C Java y otros lenguajes

La concurrencia es una caracteriacutestica importantiacutesima del lenguaje fue creada especialmente para las aplicaciones de telecomunicaciones gran disponibilidad cambiar coacutedigo sin detener la aplicacioacuten etc

Lenguaje Ada

Ada es un lenguaje de programacioacuten orientado a objetos y fuertemente tipado de forma estaacutetica que fue disentildeado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos Es un lenguaje multipropoacutesito orientado a objetos y concurrente pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++ Fue disentildeado con la seguridad en mente y con una filosofiacutea orientada a la reduccioacuten de errores comunes y difiacuteciles de descubrir Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucioacuten (desactivarles en beneficio del rendimiento) La sincronizacioacuten 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 aeronaacuteutica (Boeing o Airbus) la gestioacuten del traacutefico aeacuterea y la industria aeroespacial entre otros Ada es uno de entre muchos posibles lenguajes de programacioacuten Fue disentildeado con un claro propoacutesito en mente la calidad del producto El lenguaje fue disentildeado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD) Durante los antildeos 1970 este departamento teniacutea proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software Para solucionarlo se buscoacute un lenguaje uacutenico que cumpliese unas ciertas normas recogidas en el documento Steelman Despueacutes de un estudio de los lenguajes existentes en la eacutepoca se decidioacute que ninguno las cumpliacutea totalmente por lo que se hizo un concurso puacuteblico 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 seleccionoacute la propuesta Verde disentildeada 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 antildeos 1970

Abstraccioacuten de datosSe puede obtener mayor transportabilidad y mejor mantenimiento si se pueden separar los detalles de la representacioacuten de los datos y las especificaciones de las operaciones loacutegicas sobre los mismos

Procesamiento paraleloPara 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 antildeadirlos por medio de llamadas al sistema operativo con lo que se consigue mayor transportabilidad y fiabilidad

Componentes leacutexicosSe pueden encontrar en Ada los siguientes componentes leacutexicos Identificadores Literales numeacutericos Literales de tipo caraacutecter Cadenas de caracteres Delimitadores Comentarios Palabras reservadas

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

Eacuteste es el tiacutepico Hola Mundo escrito en Ada with AdaText_IO procedure Hola_Mundo is

begin AdaText_IOPut(iexclHola mundo)end Hola_Mundo

Lenguaje Haskell

En los antildeos setenta se produjo lo que se conoce como la crisis del software La gran mayoriacutea del software que se produciacutea no era fiable Teniacutea una gran tasa de errores que poniacutea en grave peligro la confianza de los usuarios en estos sistemas Por esta razoacuten se propuso una solucioacuten crear un nuevo modelo programacioacuten lo que se conoce como programacioacuten funcional Dentro de este tipo de programacioacuten tenemos lenguajes como el Haskell el LISP el Miranda el Scheme etc El Haskell nacioacute como lenguaje de programacioacuten en el antildeo 1987 desde entonces se ha desarrollado considerablemente como un lenguaje de programacioacuten funcional puro de propoacutesito general El Haskell tiene todas las innovaciones de los lenguajes funcionales como son desarrollo de las funciones de orden superior evaluacioacuten perezosa tipos definidos por el usuario tipos polimoacuterficos estaacuteticos definiciones de listas por comprensioacuten encajes patronales etc Haskell es un lenguaje funcional puro no estricto y fuertemente tipificado Puro = transparencia referencial No estricto = usa un orden no aplicativo (Evaluacioacuten perezosa) Tipificacioacuten fuerte = los elementos del lenguaje utilizables estaacuten clasificados en distintas categoriacuteas o tipos

Un programa consiste en definiciones de funciones Declararla indicar el tipo Definirla dar el meacutetodo de computo

Los principales tipos de datos baacutesicos predefinidos en Haskell son Char Int Integer Float Double y Bool

- - Un ejemplo de ficheroHaskell- - Calcula el siguiente entero al argumentosucesor Integer Integersucesor x = x + 1- - Calcula la suma de los cuadrados de sus dos argumentossumaCuadrados Integer Integer IntegersumaCuadrados x y = x curren x + y curren y

El lenguaje evoluciona raacutepidamente y (ver maacutes abajo) como los representantes actuales del estaacutendar de facto El uacuteltimo estaacutendar semi-oficial es Haskell 2010 cuyas diferencias respecto al anterior estaacutendar Haskell 98 sonNuevas caracteriacutesticas del lenguaje

Interfaz de funciones foraacuteneas (FFI) que permite usar coacutedigo C en un programa Haskell y coacutedigo Haskell en un programa C Un ejemplo explicativo se puede encontrar aquiacute

Nombres jeraacuterquicos para los moacutedulos por ejemplo DataBool Guardianes con patrones

Funcioacuten recursiva para calcular el factorial de un nuacutemero natural --Funcioacuten recursiva que calcula la factorial de un nuacutemero natural factorial Integer -gt Integer factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = n factorial (n-1)Otra versioacuten de la funcioacuten para calcular el factorial de un natural usando la funcioacuten product del moacutedulo DataList

--Funcioacuten para calcular el factorial de un entero usando la funcioacuten product del moacutedulo DataList factorial Integer -gt Integer

factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = product [1n]

Lenguaje Progress 4GL (Lenguajes de Cuarta Generacioacuten)

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 coacutemodo y te permite programar muchas cosas con pocas liacuteneas 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 estaacute funcionando en muchas empresas incluyendo pequentildeas empresas hasta muy famosas y conocidas

Los lenguajes de cuarta generacioacuten o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creacioacuten de este Se han utilizado principalmente en la generacioacuten de coacutedigo para GUI y ademaacutes en la implementacioacuten de programas que facilitan las tareas de los desarrolladores y clientesLa base de los 4GL es que el usuario no dice como se haraacuten las cosas solo brinda paraacutemetros y el programa se encargara de generar el solicitado por el usuario sea esto desde generacioacuten de reportes de bases de datos a solucionar un problema matemaacutetico

Esta plataforma es muy potente ldquoGracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informaacuteticos de hoy en diacutea permitieacutendoles concentrarse en lo que realmente importa crear la loacutegica 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 plataformasrdquo OpenEdge es una plataforma abierta y flexible ldquoUn desarrollador de OpenEdge puede crear APIs para clientes de NET clientes de Javatrade 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 OpenEdgerdquo Progress incluye herramientas de programacioacuten y de bases de datos y recursos de servidores todo en su ambiente permitiendo faacutecil acceso a todos los recursos para crear aplicaciones Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos ya que el tamantildeo de las tablas puede ser excesivamente grande sin problema alguno ldquoAdemaacutes las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de maacutes de 30000 usuarios simultaacuteneosrdquoEsta garantiacutea de calidad que da Progress hace de este un programa muy usado en el momento con una gran funcionalidad Ademaacutes es un programa muy simple de utilizar en comparacioacuten a otros como SQL donde se tardariacutea mucho maacutes tiempo creando una base de datos

Tipos de lenguajes de cuarta generacioacuten

Existen diferentes tipos de lenguajes de cuarta generacioacuten cada uno con una funcioacuten en particular Entre ellos estaacuten los generadores de reportes los generadores de ldquoformsrdquo ambientes de cuarta generacioacuten administradores de datos y los generadores de aplicacionesLos generadores de reportes (Report Generators) toman una descripcioacuten del formato y el reporte a generar y de ahiacute 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 informacioacuten 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 ldquoFormsrdquo (Forms Generators) en algunos casos manejan iteraciones online con los usuarios de la aplicacioacuten o bien crean un programa para que manejen esta iteracioacuten Permiten que el usuario defina el

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 2: 50 lenguajes de programación y sus características

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 programacioacuten de paradigma declarativo por el uso de toda la gente que trabaja en el campo de la Inteligencia Artificial (linguumlistas) Es muy simple para aprender y manejar Inicialmente se trataba de un lenguaje totalmente interpretado hasta que en 1983 David HD Warren desarrolloacute un compilador capaz de traducir Prolog en un conjunto de instrucciones de una maacutequina 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 minuacutesculas cadenas de

caracteres entre _ Ejemplos 25 6 _la vida_ lavida pedro instalacioacuten Variables una cadena de caracteres que empieza con una mayuacutescula o con (guillon bajo) Ejemplos X Xxx

Pero 33Un programa PRLOG se compone de una parte de hechos y una parte de reglas Un hecho es la modelizacioacuten de los datossituaciones elementales que se consideran ciertos Un hecho es un teacutermino que tiene todos sus paraacutemetros constantes o evaluables directamente

Ejemplosmadre (ana pedro )gato ( tom )come (tom jerry )esnumero (34343)

PROLOG no estaacute un lenguaje completo de programacioacuten loacutegica sino un lenguaje que intenta la resolucioacuten de las interrogaciones seguacuten las reglas siguientes

Primero se examina los hechos Luego se intenta la aplicacioacuten de la reglas de la primera con El factor indicado hasta la uacuteltima con este factor Se aplica un meacutetodo de back tracking el caso de fracaso (a saber no se puede decidir nada y no hay otra opcioacuten) Una interrogacioacuten sin respuesta se interpreta como falsa

El programa PROLOG siguiente

hermano (pablo ana )hermano (pablo maria )hermano (XY)- hermano (YX)hermano (XZ)- hermano (XY) hermano (YZ)

ExpresionesPROLOG cuenta con operadores para la unificacioacuten y comparacioacuten sea con evaluacioacuten o sea simboacutelica como los siguientes

X is Y unificacioacuten con evaluacioacuten X = Y unificacioacuten simboacutelica X==Y comparacioacuten con evaluacioacuten X == Y comparacioacuten simboacutelica

Listas

La lista es una estructura de datos muy utilizada en la programacioacuten non-numeacuterica Es un conjunto ordenado de elementos y puede tener cualquier dimensioacuten

Una lista vaciacutea [] Una lista con variables [X 1 2 Y]

Lenguaje APL

Antildeo 1961Lugar Estados UnidosCreador Ken IversenDefinicioacuten APL es un lenguaje de programacioacuten interpretado que recibe su nombre de A Programing Language tambieacuten conocido como Array Processing Language desde hace algunos antildeos Uso Su uso estaacute orientado a trabajos con matrices con la que se pueden hacer todo tipo de operaciones loacutegicas o matemaacuteticas 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 tambieacuten al ser interpretado la velocidad de ejecucioacuten es tiacutepicamente maacutes lenta que la de los lenguajes de programacioacuten compilados Este lenguaje de programacioacuten fue usado para el sistema Deep Blue de IBM que vencioacute a Kasparov al ajedrez y su uso para hacer los efectos especiales en la peliacutecula Tron de Walt Disney Su potencia es la mejor de sus armas y podriacuteamos 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 ejecucioacuten otras lo que lo hace muy apropiado para la fabricacioacuten de compiladores e inteacuterpretes La pero parte de este lenguaje es que no usa la notacioacuten ASCII en concreto pues existen muchos maacutes siacutembolos sobre todo letras griegas para el desarrollo de los programas por lo tanto es preciso tener un teclado especial para poder usarloAPL ha sido criticado en cambio por su falta de legibilidad lo que hace difiacutecil modificar programas antiguos (se le ha llamado iroacutenicamente write-only language) Otro defecto importante deriva del uso de siacutembolos propios (letras griegas y otros caracteres auacuten menos convencionales) lo que ademaacutes de dificultar la escritura (al no aparecer en los teclados normales) hace que el coacutedigo sea poco portable ya que cada versioacuten concreta de APL almacena a su modo el coacutedigo fuente (y eso aparte de las habituales diferencias de una implementacioacuten a otra) El propio Iverson junto con Roger Hui ha creado un nuevo lenguaje (J) derivado de APL que usa soacutelo caracteres ASCII

Aplicaciones del APLComo 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 = 46x + 8y + 9z = 74x + 2y + 1z = 2

Basta ejecutar UNA UNICA sentencia de APL cuya sintaxis es4 7 2 [divide] 3 3 ρ 7 4 2 6 8 9 4 2 1

Para obtener inmediatamente el valor resultado para cada variable (x y z)0 11 -02

Tiene la propiedad de que desde una rutina se pueden (en tiempo de ejecucioacuten) crear compilar y ejecutar otras rutinas lo que lo hace tambien muy apropiado para la elaboracioacuten automaacutetica de compiladores e inteacuterpretes Algunas dificultades (poco importantes) radican en que

1 Necesita pegatinas (o marcar con rotulador permanente) en el teclado para poder ver los operadores (siacutembolos 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 ejecucioacuten) su velocidad es tiacutepicamente algo maacutes lenta que la de las aplicaciones con lenguajes de programacioacuten 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 revisioacuten interactiva inmediata

Lenguaje J

Es un nuevo dialecto de APL tambieacuten creado por Ken Iverson Se puede descargar gratuitamente aunque para usarlo como programador hace falta una clave de usuario (la enviacutean gratuitamente por correo electroacutenico despueacutes de rellenar un pequentildeo formulario) Hay versiones para Windows MacOS X Linux y otros sistemas operativos Se distribuye con una amplia documentacioacuten (tambieacuten disponible en el sitio)

El lenguaje de programacioacuten J disentildeado por Kenneth Iverson y Roger Hui en los 90 es una siacutentesis de los lenguajes de programacioacuten APL (disentildeado tambieacuten 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 soacutelo requiere el juego de caracteres baacutesicos 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 programacioacuten de array J es muy conciso y potente y es uacutetil para crear programas en los campos de las matemaacuteticas y de la estadiacutestica especialmente cuando involucran operaciones con matrices A diferencia de muchos lenguajes que soportan la programacioacuten orientada a objetos el flexible esquema de espacio de nombres jeraacuterquico del lenguaje J (donde cada nombre existe en un aacutembito particular) puede ser usado con efectividad como un marco de trabajo para realizar programacioacuten orientada a objetos basada tanto en clases como en instancias Noacutetese que el lenguaje de programacioacuten J no estaacute relacionado con J++ ni su nueva versioacuten J (una versioacuten propietaria del Lenguaje de programacioacuten Java desarrollada por Microsoft)

J es particularmente fuerte en el anaacutelisis matemaacutetico estadiacutestico y loacutegico de los datos Es una potente

herramienta en construccioacuten nueva y mejores soluciones a problemas antiguos e incluso mejor en la buacutesqueda de

soluciones donde el problema no es ya bien conocido J los sistemas tienen

un entorno de desarrollo integrado paquetes de utilidades y bibliotecas estaacutendar consola navegador y extremos delanteros Qt interfaces con otros lenguajes de programacioacuten y aplicaciones graacuteficos integrados memoria asignada de archivos para aplicaciones de datos de alto rendimiento JD

Si usted estaacute interesado en programacioacuten de soluciones a los difiacuteciles problemas de procesamiento de datos

entonces el tiempo que invertir en el aprendizaje de J se se bien pasado

J es un lenguaje de programacioacuten extremadamente potente y sus programas pueden ser muy tersos pero incluso maacutes criacutepticos El programa Hola Mundo en J es Hola Mundo

Esta implementacioacuten de Hola Mundo refleja el uso tradicional de J -- los programas son introducidos durante unasesioacuten del inteacuterprete J y los resultados de las expresiones se muestran de modo interactivo Tambieacuten es posible hacer que scripts en J se puedan ejecutar como programas independientes pero los mecanismos usados para asociar el script con el inteacuterprete son dependientes del sistema En un sistema Unix se podriacutea hacer como sigue

binjcecho Hello world

exit

Lenguaje ActionScript

El ActionScript es un lenguaje de programacioacuten que crea Script (conjunto de instrucciones de un programa) de Flash con el que crear peliacuteculas con elementos interactivos El Flash es un programa para crear animaciones vectoriales para paacuteginas web El ActionScript nos ayuda a crear una peliacutecula en la que el usuario pueda hacer por ejemplo un clic con el ratoacuten o presionar una tecla entonces se ejecuta un determinado Script Como podriacutea ser que se cargue otra peliacutecula El ActionScript quiere conseguir que estas peliacuteculas se comporten exactamente como el usuario determine Para conseguir que las peliacuteculas se comporten como el usuario quiere no es necesario entender todos los posibles usos de esta herramienta de creacioacuten 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 programacioacuten para la creacioacuten de Script orientado a objetos Lo que significa que cuando se dan determinados eventos (por ejemplo un clic del ratoacuten) se producen unas determinadas acciones Para comenzar a crear Script no es necesario tener un conocimiento amplio del ActionScript Por ejemplo algo sencillo seriacutea crear un Script que se lo asignamos a un botoacuten con el que queremos que al ser presionarlo nos cambie el brillo de un clip de peliacutecula Con el ActionScript tambieacuten podemos cambiar el color aumentar o reducir el volumen del sonido etc Pero estas son algunas las posibilidades que tiene este lenguaje de programacioacuten en este campo son muy amplias

EstructuraFlash estaacute compuesto por objetos con su respectiva ruta dentro del swf Cada uno de eacutestos en ActionScript pertenece a una clase (MovieClip botones Vectores (Arrays) etc) que contiene Propiedades y Meacutetodos o Funciones Propiedades Dentro del archivo raiacutez de la clase estaacuten declaradas como variables (alpha useHandCursor length) Meacutetodos o Funciones Dentro del archivo raiacutez de la clase estaacuten declaradas como funciones (stop() gotoAndPlay() getURL())

ActionScript 3

ActionScript 30 ofrece un modelo de la programacioacuten robusto que resultaraacute familiar a los desarrolladores con conocimientos baacutesicos sobre programacioacuten orientada a objetos Algunas de las principales funciones de ActionScript 30 son

Una nueva maacutequina virtual ActionScript denominada AVM2 que utiliza un nuevo conjunto de instrucciones de coacutedigo de bytes y proporciona importantes mejoras de rendimiento

Una base de coacutedigo de compilador maacutes moderna que se ajusta mejor al estaacutendar ECMAScript (ECMA 262) y que realiza mejores optimizaciones que las versiones anteriores del compilador

Una interfaz de programacioacuten de aplicaciones (API) ampliada y mejorada con un control de bajo nivel de los objetos y un auteacutentico modelo orientado a objetos

Un nuacutecleo del lenguaje basado en el proacuteximo borrador de especificacioacuten del lenguaje ECMAScript (ECMA-262) edicioacuten 4

Una API XML basada en la especificacioacuten de ECMAScript para XML (E4X) (ECMA-357 edicioacuten 2) E4X es una extensioacuten del lenguaje ECMAScript que antildeade XML como un tipo de datos nativo del lenguaje

Un modelo de eventos basado en la especificacioacuten de eventos DOM(modelo de objetos de documento)de nivel 3

Mientras que en ActionScript 20 las anotaciones de tipos eran principalmente una ayuda para el desarrollador en tiempo de ejecucioacuten se asignaban los tipos dinaacutemicamente a todos los valores En ActionScript 30 la informacioacuten de tipos se conserva en tiempo de ejecucioacuten y se utiliza con diversos fines Flash Player 9 realiza la comprobacioacuten de tipos en tiempo de ejecucioacuten lo que mejora la seguridad de tipos del sistema La informacioacuten

de tipos tambieacuten se utiliza para especificar variables en representaciones nativas de la maacutequina lo que mejora el rendimiento y reduce el uso de memoria

Lenguaje Erlang

Es un lenguaje funcional y de programacioacuten concurrente fue disentildeado por la compantildeiacutea Ericsson con el propoacutesito de hacer aplicaciones que puedan soportar fallos funcionamiento ininterrumpido aplicaciones distribuidas entre otras cosas

Tiene una caracteriacutestica muy importante el cambio de coacutedigo en caliente el cual se refiere a poder modificar el coacutedigo aun cuando la aplicacioacuten estaacute corriendo Erlang no seguiacutea la filosofiacutea de coacutedigo abierto hasta 1998 cuando Ericsson lo cedioacute como tal Erlang es un lenguaje interpretado aunque tambieacuten se puede compilar usando el compilador HiPE aunque este compilador solo es para algunas plataformas es muy bueno porque pude soportar la concurrencia caracteriacutestica muy distintiva del lenguaje Esta es la paacutegina oficial de HiPE

Es posible que pensemos que entender este proceso de concurrencia es complicado y maacutes auacuten aplicarlo en alguacuten programa pero en Erlang la concurrencia es explicita y no impliacutecita con en otros lenguajes El nombre de Erlang viene de las palabras Ericsson y Language

Erlang lenguaje funcional

Los programa en Erlang estaacuten compuestos de bloques funciones y las identificamos por su nombre y el numero de argumentos de entrada tambieacuten llamado aridad Por ejemplo las funciones multiplicacion2 multiplicacion3 multipicacion4 pueden existir perfectamente juntas y llamaacutendose a cada una seguacuten 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 ) -gtinstruccioacuteninstruccioacutenresultado_a_devolver

Tambieacuten podemos escribir alguna condicioacuten antes de gt podemos poner que si se cumple algo entonces se lleve a cabo determinada instruccioacuten esto lo hacemos con when una forma de implementarlo seriacutea

mi_funcion(dato1 dato2) when dato1 gt 0 -gtY algo muy importante en Erlang aprender a escribir el Hice un programa en Erlang que muestra su caracteriacutestica como lenguaje funcional bueno primero que nada abro el terminal y escribo

cecycecy-desktop~$ emacs -nw geomerl

Las caracteriacutesticas maacutes destacadas de Erlang son

Lenguaje funcional Soporte de concurrencia Tolerancia a fallas Cambio de coacutedigo en caliente Posibilidad de conectar con coacutedigo C Java y otros lenguajes

La concurrencia es una caracteriacutestica importantiacutesima del lenguaje fue creada especialmente para las aplicaciones de telecomunicaciones gran disponibilidad cambiar coacutedigo sin detener la aplicacioacuten etc

Lenguaje Ada

Ada es un lenguaje de programacioacuten orientado a objetos y fuertemente tipado de forma estaacutetica que fue disentildeado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos Es un lenguaje multipropoacutesito orientado a objetos y concurrente pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++ Fue disentildeado con la seguridad en mente y con una filosofiacutea orientada a la reduccioacuten de errores comunes y difiacuteciles de descubrir Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucioacuten (desactivarles en beneficio del rendimiento) La sincronizacioacuten 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 aeronaacuteutica (Boeing o Airbus) la gestioacuten del traacutefico aeacuterea y la industria aeroespacial entre otros Ada es uno de entre muchos posibles lenguajes de programacioacuten Fue disentildeado con un claro propoacutesito en mente la calidad del producto El lenguaje fue disentildeado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD) Durante los antildeos 1970 este departamento teniacutea proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software Para solucionarlo se buscoacute un lenguaje uacutenico que cumpliese unas ciertas normas recogidas en el documento Steelman Despueacutes de un estudio de los lenguajes existentes en la eacutepoca se decidioacute que ninguno las cumpliacutea totalmente por lo que se hizo un concurso puacuteblico 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 seleccionoacute la propuesta Verde disentildeada 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 antildeos 1970

Abstraccioacuten de datosSe puede obtener mayor transportabilidad y mejor mantenimiento si se pueden separar los detalles de la representacioacuten de los datos y las especificaciones de las operaciones loacutegicas sobre los mismos

Procesamiento paraleloPara 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 antildeadirlos por medio de llamadas al sistema operativo con lo que se consigue mayor transportabilidad y fiabilidad

Componentes leacutexicosSe pueden encontrar en Ada los siguientes componentes leacutexicos Identificadores Literales numeacutericos Literales de tipo caraacutecter Cadenas de caracteres Delimitadores Comentarios Palabras reservadas

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

Eacuteste es el tiacutepico Hola Mundo escrito en Ada with AdaText_IO procedure Hola_Mundo is

begin AdaText_IOPut(iexclHola mundo)end Hola_Mundo

Lenguaje Haskell

En los antildeos setenta se produjo lo que se conoce como la crisis del software La gran mayoriacutea del software que se produciacutea no era fiable Teniacutea una gran tasa de errores que poniacutea en grave peligro la confianza de los usuarios en estos sistemas Por esta razoacuten se propuso una solucioacuten crear un nuevo modelo programacioacuten lo que se conoce como programacioacuten funcional Dentro de este tipo de programacioacuten tenemos lenguajes como el Haskell el LISP el Miranda el Scheme etc El Haskell nacioacute como lenguaje de programacioacuten en el antildeo 1987 desde entonces se ha desarrollado considerablemente como un lenguaje de programacioacuten funcional puro de propoacutesito general El Haskell tiene todas las innovaciones de los lenguajes funcionales como son desarrollo de las funciones de orden superior evaluacioacuten perezosa tipos definidos por el usuario tipos polimoacuterficos estaacuteticos definiciones de listas por comprensioacuten encajes patronales etc Haskell es un lenguaje funcional puro no estricto y fuertemente tipificado Puro = transparencia referencial No estricto = usa un orden no aplicativo (Evaluacioacuten perezosa) Tipificacioacuten fuerte = los elementos del lenguaje utilizables estaacuten clasificados en distintas categoriacuteas o tipos

Un programa consiste en definiciones de funciones Declararla indicar el tipo Definirla dar el meacutetodo de computo

Los principales tipos de datos baacutesicos predefinidos en Haskell son Char Int Integer Float Double y Bool

- - Un ejemplo de ficheroHaskell- - Calcula el siguiente entero al argumentosucesor Integer Integersucesor x = x + 1- - Calcula la suma de los cuadrados de sus dos argumentossumaCuadrados Integer Integer IntegersumaCuadrados x y = x curren x + y curren y

El lenguaje evoluciona raacutepidamente y (ver maacutes abajo) como los representantes actuales del estaacutendar de facto El uacuteltimo estaacutendar semi-oficial es Haskell 2010 cuyas diferencias respecto al anterior estaacutendar Haskell 98 sonNuevas caracteriacutesticas del lenguaje

Interfaz de funciones foraacuteneas (FFI) que permite usar coacutedigo C en un programa Haskell y coacutedigo Haskell en un programa C Un ejemplo explicativo se puede encontrar aquiacute

Nombres jeraacuterquicos para los moacutedulos por ejemplo DataBool Guardianes con patrones

Funcioacuten recursiva para calcular el factorial de un nuacutemero natural --Funcioacuten recursiva que calcula la factorial de un nuacutemero natural factorial Integer -gt Integer factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = n factorial (n-1)Otra versioacuten de la funcioacuten para calcular el factorial de un natural usando la funcioacuten product del moacutedulo DataList

--Funcioacuten para calcular el factorial de un entero usando la funcioacuten product del moacutedulo DataList factorial Integer -gt Integer

factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = product [1n]

Lenguaje Progress 4GL (Lenguajes de Cuarta Generacioacuten)

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 coacutemodo y te permite programar muchas cosas con pocas liacuteneas 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 estaacute funcionando en muchas empresas incluyendo pequentildeas empresas hasta muy famosas y conocidas

Los lenguajes de cuarta generacioacuten o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creacioacuten de este Se han utilizado principalmente en la generacioacuten de coacutedigo para GUI y ademaacutes en la implementacioacuten de programas que facilitan las tareas de los desarrolladores y clientesLa base de los 4GL es que el usuario no dice como se haraacuten las cosas solo brinda paraacutemetros y el programa se encargara de generar el solicitado por el usuario sea esto desde generacioacuten de reportes de bases de datos a solucionar un problema matemaacutetico

Esta plataforma es muy potente ldquoGracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informaacuteticos de hoy en diacutea permitieacutendoles concentrarse en lo que realmente importa crear la loacutegica 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 plataformasrdquo OpenEdge es una plataforma abierta y flexible ldquoUn desarrollador de OpenEdge puede crear APIs para clientes de NET clientes de Javatrade 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 OpenEdgerdquo Progress incluye herramientas de programacioacuten y de bases de datos y recursos de servidores todo en su ambiente permitiendo faacutecil acceso a todos los recursos para crear aplicaciones Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos ya que el tamantildeo de las tablas puede ser excesivamente grande sin problema alguno ldquoAdemaacutes las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de maacutes de 30000 usuarios simultaacuteneosrdquoEsta garantiacutea de calidad que da Progress hace de este un programa muy usado en el momento con una gran funcionalidad Ademaacutes es un programa muy simple de utilizar en comparacioacuten a otros como SQL donde se tardariacutea mucho maacutes tiempo creando una base de datos

Tipos de lenguajes de cuarta generacioacuten

Existen diferentes tipos de lenguajes de cuarta generacioacuten cada uno con una funcioacuten en particular Entre ellos estaacuten los generadores de reportes los generadores de ldquoformsrdquo ambientes de cuarta generacioacuten administradores de datos y los generadores de aplicacionesLos generadores de reportes (Report Generators) toman una descripcioacuten del formato y el reporte a generar y de ahiacute 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 informacioacuten 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 ldquoFormsrdquo (Forms Generators) en algunos casos manejan iteraciones online con los usuarios de la aplicacioacuten o bien crean un programa para que manejen esta iteracioacuten Permiten que el usuario defina el

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 3: 50 lenguajes de programación y sus características

Antildeo 1961Lugar Estados UnidosCreador Ken IversenDefinicioacuten APL es un lenguaje de programacioacuten interpretado que recibe su nombre de A Programing Language tambieacuten conocido como Array Processing Language desde hace algunos antildeos Uso Su uso estaacute orientado a trabajos con matrices con la que se pueden hacer todo tipo de operaciones loacutegicas o matemaacuteticas 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 tambieacuten al ser interpretado la velocidad de ejecucioacuten es tiacutepicamente maacutes lenta que la de los lenguajes de programacioacuten compilados Este lenguaje de programacioacuten fue usado para el sistema Deep Blue de IBM que vencioacute a Kasparov al ajedrez y su uso para hacer los efectos especiales en la peliacutecula Tron de Walt Disney Su potencia es la mejor de sus armas y podriacuteamos 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 ejecucioacuten otras lo que lo hace muy apropiado para la fabricacioacuten de compiladores e inteacuterpretes La pero parte de este lenguaje es que no usa la notacioacuten ASCII en concreto pues existen muchos maacutes siacutembolos sobre todo letras griegas para el desarrollo de los programas por lo tanto es preciso tener un teclado especial para poder usarloAPL ha sido criticado en cambio por su falta de legibilidad lo que hace difiacutecil modificar programas antiguos (se le ha llamado iroacutenicamente write-only language) Otro defecto importante deriva del uso de siacutembolos propios (letras griegas y otros caracteres auacuten menos convencionales) lo que ademaacutes de dificultar la escritura (al no aparecer en los teclados normales) hace que el coacutedigo sea poco portable ya que cada versioacuten concreta de APL almacena a su modo el coacutedigo fuente (y eso aparte de las habituales diferencias de una implementacioacuten a otra) El propio Iverson junto con Roger Hui ha creado un nuevo lenguaje (J) derivado de APL que usa soacutelo caracteres ASCII

Aplicaciones del APLComo 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 = 46x + 8y + 9z = 74x + 2y + 1z = 2

Basta ejecutar UNA UNICA sentencia de APL cuya sintaxis es4 7 2 [divide] 3 3 ρ 7 4 2 6 8 9 4 2 1

Para obtener inmediatamente el valor resultado para cada variable (x y z)0 11 -02

Tiene la propiedad de que desde una rutina se pueden (en tiempo de ejecucioacuten) crear compilar y ejecutar otras rutinas lo que lo hace tambien muy apropiado para la elaboracioacuten automaacutetica de compiladores e inteacuterpretes Algunas dificultades (poco importantes) radican en que

1 Necesita pegatinas (o marcar con rotulador permanente) en el teclado para poder ver los operadores (siacutembolos 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 ejecucioacuten) su velocidad es tiacutepicamente algo maacutes lenta que la de las aplicaciones con lenguajes de programacioacuten 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 revisioacuten interactiva inmediata

Lenguaje J

Es un nuevo dialecto de APL tambieacuten creado por Ken Iverson Se puede descargar gratuitamente aunque para usarlo como programador hace falta una clave de usuario (la enviacutean gratuitamente por correo electroacutenico despueacutes de rellenar un pequentildeo formulario) Hay versiones para Windows MacOS X Linux y otros sistemas operativos Se distribuye con una amplia documentacioacuten (tambieacuten disponible en el sitio)

El lenguaje de programacioacuten J disentildeado por Kenneth Iverson y Roger Hui en los 90 es una siacutentesis de los lenguajes de programacioacuten APL (disentildeado tambieacuten 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 soacutelo requiere el juego de caracteres baacutesicos 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 programacioacuten de array J es muy conciso y potente y es uacutetil para crear programas en los campos de las matemaacuteticas y de la estadiacutestica especialmente cuando involucran operaciones con matrices A diferencia de muchos lenguajes que soportan la programacioacuten orientada a objetos el flexible esquema de espacio de nombres jeraacuterquico del lenguaje J (donde cada nombre existe en un aacutembito particular) puede ser usado con efectividad como un marco de trabajo para realizar programacioacuten orientada a objetos basada tanto en clases como en instancias Noacutetese que el lenguaje de programacioacuten J no estaacute relacionado con J++ ni su nueva versioacuten J (una versioacuten propietaria del Lenguaje de programacioacuten Java desarrollada por Microsoft)

J es particularmente fuerte en el anaacutelisis matemaacutetico estadiacutestico y loacutegico de los datos Es una potente

herramienta en construccioacuten nueva y mejores soluciones a problemas antiguos e incluso mejor en la buacutesqueda de

soluciones donde el problema no es ya bien conocido J los sistemas tienen

un entorno de desarrollo integrado paquetes de utilidades y bibliotecas estaacutendar consola navegador y extremos delanteros Qt interfaces con otros lenguajes de programacioacuten y aplicaciones graacuteficos integrados memoria asignada de archivos para aplicaciones de datos de alto rendimiento JD

Si usted estaacute interesado en programacioacuten de soluciones a los difiacuteciles problemas de procesamiento de datos

entonces el tiempo que invertir en el aprendizaje de J se se bien pasado

J es un lenguaje de programacioacuten extremadamente potente y sus programas pueden ser muy tersos pero incluso maacutes criacutepticos El programa Hola Mundo en J es Hola Mundo

Esta implementacioacuten de Hola Mundo refleja el uso tradicional de J -- los programas son introducidos durante unasesioacuten del inteacuterprete J y los resultados de las expresiones se muestran de modo interactivo Tambieacuten es posible hacer que scripts en J se puedan ejecutar como programas independientes pero los mecanismos usados para asociar el script con el inteacuterprete son dependientes del sistema En un sistema Unix se podriacutea hacer como sigue

binjcecho Hello world

exit

Lenguaje ActionScript

El ActionScript es un lenguaje de programacioacuten que crea Script (conjunto de instrucciones de un programa) de Flash con el que crear peliacuteculas con elementos interactivos El Flash es un programa para crear animaciones vectoriales para paacuteginas web El ActionScript nos ayuda a crear una peliacutecula en la que el usuario pueda hacer por ejemplo un clic con el ratoacuten o presionar una tecla entonces se ejecuta un determinado Script Como podriacutea ser que se cargue otra peliacutecula El ActionScript quiere conseguir que estas peliacuteculas se comporten exactamente como el usuario determine Para conseguir que las peliacuteculas se comporten como el usuario quiere no es necesario entender todos los posibles usos de esta herramienta de creacioacuten 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 programacioacuten para la creacioacuten de Script orientado a objetos Lo que significa que cuando se dan determinados eventos (por ejemplo un clic del ratoacuten) se producen unas determinadas acciones Para comenzar a crear Script no es necesario tener un conocimiento amplio del ActionScript Por ejemplo algo sencillo seriacutea crear un Script que se lo asignamos a un botoacuten con el que queremos que al ser presionarlo nos cambie el brillo de un clip de peliacutecula Con el ActionScript tambieacuten podemos cambiar el color aumentar o reducir el volumen del sonido etc Pero estas son algunas las posibilidades que tiene este lenguaje de programacioacuten en este campo son muy amplias

EstructuraFlash estaacute compuesto por objetos con su respectiva ruta dentro del swf Cada uno de eacutestos en ActionScript pertenece a una clase (MovieClip botones Vectores (Arrays) etc) que contiene Propiedades y Meacutetodos o Funciones Propiedades Dentro del archivo raiacutez de la clase estaacuten declaradas como variables (alpha useHandCursor length) Meacutetodos o Funciones Dentro del archivo raiacutez de la clase estaacuten declaradas como funciones (stop() gotoAndPlay() getURL())

ActionScript 3

ActionScript 30 ofrece un modelo de la programacioacuten robusto que resultaraacute familiar a los desarrolladores con conocimientos baacutesicos sobre programacioacuten orientada a objetos Algunas de las principales funciones de ActionScript 30 son

Una nueva maacutequina virtual ActionScript denominada AVM2 que utiliza un nuevo conjunto de instrucciones de coacutedigo de bytes y proporciona importantes mejoras de rendimiento

Una base de coacutedigo de compilador maacutes moderna que se ajusta mejor al estaacutendar ECMAScript (ECMA 262) y que realiza mejores optimizaciones que las versiones anteriores del compilador

Una interfaz de programacioacuten de aplicaciones (API) ampliada y mejorada con un control de bajo nivel de los objetos y un auteacutentico modelo orientado a objetos

Un nuacutecleo del lenguaje basado en el proacuteximo borrador de especificacioacuten del lenguaje ECMAScript (ECMA-262) edicioacuten 4

Una API XML basada en la especificacioacuten de ECMAScript para XML (E4X) (ECMA-357 edicioacuten 2) E4X es una extensioacuten del lenguaje ECMAScript que antildeade XML como un tipo de datos nativo del lenguaje

Un modelo de eventos basado en la especificacioacuten de eventos DOM(modelo de objetos de documento)de nivel 3

Mientras que en ActionScript 20 las anotaciones de tipos eran principalmente una ayuda para el desarrollador en tiempo de ejecucioacuten se asignaban los tipos dinaacutemicamente a todos los valores En ActionScript 30 la informacioacuten de tipos se conserva en tiempo de ejecucioacuten y se utiliza con diversos fines Flash Player 9 realiza la comprobacioacuten de tipos en tiempo de ejecucioacuten lo que mejora la seguridad de tipos del sistema La informacioacuten

de tipos tambieacuten se utiliza para especificar variables en representaciones nativas de la maacutequina lo que mejora el rendimiento y reduce el uso de memoria

Lenguaje Erlang

Es un lenguaje funcional y de programacioacuten concurrente fue disentildeado por la compantildeiacutea Ericsson con el propoacutesito de hacer aplicaciones que puedan soportar fallos funcionamiento ininterrumpido aplicaciones distribuidas entre otras cosas

Tiene una caracteriacutestica muy importante el cambio de coacutedigo en caliente el cual se refiere a poder modificar el coacutedigo aun cuando la aplicacioacuten estaacute corriendo Erlang no seguiacutea la filosofiacutea de coacutedigo abierto hasta 1998 cuando Ericsson lo cedioacute como tal Erlang es un lenguaje interpretado aunque tambieacuten se puede compilar usando el compilador HiPE aunque este compilador solo es para algunas plataformas es muy bueno porque pude soportar la concurrencia caracteriacutestica muy distintiva del lenguaje Esta es la paacutegina oficial de HiPE

Es posible que pensemos que entender este proceso de concurrencia es complicado y maacutes auacuten aplicarlo en alguacuten programa pero en Erlang la concurrencia es explicita y no impliacutecita con en otros lenguajes El nombre de Erlang viene de las palabras Ericsson y Language

Erlang lenguaje funcional

Los programa en Erlang estaacuten compuestos de bloques funciones y las identificamos por su nombre y el numero de argumentos de entrada tambieacuten llamado aridad Por ejemplo las funciones multiplicacion2 multiplicacion3 multipicacion4 pueden existir perfectamente juntas y llamaacutendose a cada una seguacuten 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 ) -gtinstruccioacuteninstruccioacutenresultado_a_devolver

Tambieacuten podemos escribir alguna condicioacuten antes de gt podemos poner que si se cumple algo entonces se lleve a cabo determinada instruccioacuten esto lo hacemos con when una forma de implementarlo seriacutea

mi_funcion(dato1 dato2) when dato1 gt 0 -gtY algo muy importante en Erlang aprender a escribir el Hice un programa en Erlang que muestra su caracteriacutestica como lenguaje funcional bueno primero que nada abro el terminal y escribo

cecycecy-desktop~$ emacs -nw geomerl

Las caracteriacutesticas maacutes destacadas de Erlang son

Lenguaje funcional Soporte de concurrencia Tolerancia a fallas Cambio de coacutedigo en caliente Posibilidad de conectar con coacutedigo C Java y otros lenguajes

La concurrencia es una caracteriacutestica importantiacutesima del lenguaje fue creada especialmente para las aplicaciones de telecomunicaciones gran disponibilidad cambiar coacutedigo sin detener la aplicacioacuten etc

Lenguaje Ada

Ada es un lenguaje de programacioacuten orientado a objetos y fuertemente tipado de forma estaacutetica que fue disentildeado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos Es un lenguaje multipropoacutesito orientado a objetos y concurrente pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++ Fue disentildeado con la seguridad en mente y con una filosofiacutea orientada a la reduccioacuten de errores comunes y difiacuteciles de descubrir Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucioacuten (desactivarles en beneficio del rendimiento) La sincronizacioacuten 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 aeronaacuteutica (Boeing o Airbus) la gestioacuten del traacutefico aeacuterea y la industria aeroespacial entre otros Ada es uno de entre muchos posibles lenguajes de programacioacuten Fue disentildeado con un claro propoacutesito en mente la calidad del producto El lenguaje fue disentildeado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD) Durante los antildeos 1970 este departamento teniacutea proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software Para solucionarlo se buscoacute un lenguaje uacutenico que cumpliese unas ciertas normas recogidas en el documento Steelman Despueacutes de un estudio de los lenguajes existentes en la eacutepoca se decidioacute que ninguno las cumpliacutea totalmente por lo que se hizo un concurso puacuteblico 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 seleccionoacute la propuesta Verde disentildeada 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 antildeos 1970

Abstraccioacuten de datosSe puede obtener mayor transportabilidad y mejor mantenimiento si se pueden separar los detalles de la representacioacuten de los datos y las especificaciones de las operaciones loacutegicas sobre los mismos

Procesamiento paraleloPara 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 antildeadirlos por medio de llamadas al sistema operativo con lo que se consigue mayor transportabilidad y fiabilidad

Componentes leacutexicosSe pueden encontrar en Ada los siguientes componentes leacutexicos Identificadores Literales numeacutericos Literales de tipo caraacutecter Cadenas de caracteres Delimitadores Comentarios Palabras reservadas

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

Eacuteste es el tiacutepico Hola Mundo escrito en Ada with AdaText_IO procedure Hola_Mundo is

begin AdaText_IOPut(iexclHola mundo)end Hola_Mundo

Lenguaje Haskell

En los antildeos setenta se produjo lo que se conoce como la crisis del software La gran mayoriacutea del software que se produciacutea no era fiable Teniacutea una gran tasa de errores que poniacutea en grave peligro la confianza de los usuarios en estos sistemas Por esta razoacuten se propuso una solucioacuten crear un nuevo modelo programacioacuten lo que se conoce como programacioacuten funcional Dentro de este tipo de programacioacuten tenemos lenguajes como el Haskell el LISP el Miranda el Scheme etc El Haskell nacioacute como lenguaje de programacioacuten en el antildeo 1987 desde entonces se ha desarrollado considerablemente como un lenguaje de programacioacuten funcional puro de propoacutesito general El Haskell tiene todas las innovaciones de los lenguajes funcionales como son desarrollo de las funciones de orden superior evaluacioacuten perezosa tipos definidos por el usuario tipos polimoacuterficos estaacuteticos definiciones de listas por comprensioacuten encajes patronales etc Haskell es un lenguaje funcional puro no estricto y fuertemente tipificado Puro = transparencia referencial No estricto = usa un orden no aplicativo (Evaluacioacuten perezosa) Tipificacioacuten fuerte = los elementos del lenguaje utilizables estaacuten clasificados en distintas categoriacuteas o tipos

Un programa consiste en definiciones de funciones Declararla indicar el tipo Definirla dar el meacutetodo de computo

Los principales tipos de datos baacutesicos predefinidos en Haskell son Char Int Integer Float Double y Bool

- - Un ejemplo de ficheroHaskell- - Calcula el siguiente entero al argumentosucesor Integer Integersucesor x = x + 1- - Calcula la suma de los cuadrados de sus dos argumentossumaCuadrados Integer Integer IntegersumaCuadrados x y = x curren x + y curren y

El lenguaje evoluciona raacutepidamente y (ver maacutes abajo) como los representantes actuales del estaacutendar de facto El uacuteltimo estaacutendar semi-oficial es Haskell 2010 cuyas diferencias respecto al anterior estaacutendar Haskell 98 sonNuevas caracteriacutesticas del lenguaje

Interfaz de funciones foraacuteneas (FFI) que permite usar coacutedigo C en un programa Haskell y coacutedigo Haskell en un programa C Un ejemplo explicativo se puede encontrar aquiacute

Nombres jeraacuterquicos para los moacutedulos por ejemplo DataBool Guardianes con patrones

Funcioacuten recursiva para calcular el factorial de un nuacutemero natural --Funcioacuten recursiva que calcula la factorial de un nuacutemero natural factorial Integer -gt Integer factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = n factorial (n-1)Otra versioacuten de la funcioacuten para calcular el factorial de un natural usando la funcioacuten product del moacutedulo DataList

--Funcioacuten para calcular el factorial de un entero usando la funcioacuten product del moacutedulo DataList factorial Integer -gt Integer

factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = product [1n]

Lenguaje Progress 4GL (Lenguajes de Cuarta Generacioacuten)

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 coacutemodo y te permite programar muchas cosas con pocas liacuteneas 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 estaacute funcionando en muchas empresas incluyendo pequentildeas empresas hasta muy famosas y conocidas

Los lenguajes de cuarta generacioacuten o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creacioacuten de este Se han utilizado principalmente en la generacioacuten de coacutedigo para GUI y ademaacutes en la implementacioacuten de programas que facilitan las tareas de los desarrolladores y clientesLa base de los 4GL es que el usuario no dice como se haraacuten las cosas solo brinda paraacutemetros y el programa se encargara de generar el solicitado por el usuario sea esto desde generacioacuten de reportes de bases de datos a solucionar un problema matemaacutetico

Esta plataforma es muy potente ldquoGracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informaacuteticos de hoy en diacutea permitieacutendoles concentrarse en lo que realmente importa crear la loacutegica 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 plataformasrdquo OpenEdge es una plataforma abierta y flexible ldquoUn desarrollador de OpenEdge puede crear APIs para clientes de NET clientes de Javatrade 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 OpenEdgerdquo Progress incluye herramientas de programacioacuten y de bases de datos y recursos de servidores todo en su ambiente permitiendo faacutecil acceso a todos los recursos para crear aplicaciones Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos ya que el tamantildeo de las tablas puede ser excesivamente grande sin problema alguno ldquoAdemaacutes las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de maacutes de 30000 usuarios simultaacuteneosrdquoEsta garantiacutea de calidad que da Progress hace de este un programa muy usado en el momento con una gran funcionalidad Ademaacutes es un programa muy simple de utilizar en comparacioacuten a otros como SQL donde se tardariacutea mucho maacutes tiempo creando una base de datos

Tipos de lenguajes de cuarta generacioacuten

Existen diferentes tipos de lenguajes de cuarta generacioacuten cada uno con una funcioacuten en particular Entre ellos estaacuten los generadores de reportes los generadores de ldquoformsrdquo ambientes de cuarta generacioacuten administradores de datos y los generadores de aplicacionesLos generadores de reportes (Report Generators) toman una descripcioacuten del formato y el reporte a generar y de ahiacute 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 informacioacuten 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 ldquoFormsrdquo (Forms Generators) en algunos casos manejan iteraciones online con los usuarios de la aplicacioacuten o bien crean un programa para que manejen esta iteracioacuten Permiten que el usuario defina el

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 4: 50 lenguajes de programación y sus características

Lenguaje J

Es un nuevo dialecto de APL tambieacuten creado por Ken Iverson Se puede descargar gratuitamente aunque para usarlo como programador hace falta una clave de usuario (la enviacutean gratuitamente por correo electroacutenico despueacutes de rellenar un pequentildeo formulario) Hay versiones para Windows MacOS X Linux y otros sistemas operativos Se distribuye con una amplia documentacioacuten (tambieacuten disponible en el sitio)

El lenguaje de programacioacuten J disentildeado por Kenneth Iverson y Roger Hui en los 90 es una siacutentesis de los lenguajes de programacioacuten APL (disentildeado tambieacuten 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 soacutelo requiere el juego de caracteres baacutesicos 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 programacioacuten de array J es muy conciso y potente y es uacutetil para crear programas en los campos de las matemaacuteticas y de la estadiacutestica especialmente cuando involucran operaciones con matrices A diferencia de muchos lenguajes que soportan la programacioacuten orientada a objetos el flexible esquema de espacio de nombres jeraacuterquico del lenguaje J (donde cada nombre existe en un aacutembito particular) puede ser usado con efectividad como un marco de trabajo para realizar programacioacuten orientada a objetos basada tanto en clases como en instancias Noacutetese que el lenguaje de programacioacuten J no estaacute relacionado con J++ ni su nueva versioacuten J (una versioacuten propietaria del Lenguaje de programacioacuten Java desarrollada por Microsoft)

J es particularmente fuerte en el anaacutelisis matemaacutetico estadiacutestico y loacutegico de los datos Es una potente

herramienta en construccioacuten nueva y mejores soluciones a problemas antiguos e incluso mejor en la buacutesqueda de

soluciones donde el problema no es ya bien conocido J los sistemas tienen

un entorno de desarrollo integrado paquetes de utilidades y bibliotecas estaacutendar consola navegador y extremos delanteros Qt interfaces con otros lenguajes de programacioacuten y aplicaciones graacuteficos integrados memoria asignada de archivos para aplicaciones de datos de alto rendimiento JD

Si usted estaacute interesado en programacioacuten de soluciones a los difiacuteciles problemas de procesamiento de datos

entonces el tiempo que invertir en el aprendizaje de J se se bien pasado

J es un lenguaje de programacioacuten extremadamente potente y sus programas pueden ser muy tersos pero incluso maacutes criacutepticos El programa Hola Mundo en J es Hola Mundo

Esta implementacioacuten de Hola Mundo refleja el uso tradicional de J -- los programas son introducidos durante unasesioacuten del inteacuterprete J y los resultados de las expresiones se muestran de modo interactivo Tambieacuten es posible hacer que scripts en J se puedan ejecutar como programas independientes pero los mecanismos usados para asociar el script con el inteacuterprete son dependientes del sistema En un sistema Unix se podriacutea hacer como sigue

binjcecho Hello world

exit

Lenguaje ActionScript

El ActionScript es un lenguaje de programacioacuten que crea Script (conjunto de instrucciones de un programa) de Flash con el que crear peliacuteculas con elementos interactivos El Flash es un programa para crear animaciones vectoriales para paacuteginas web El ActionScript nos ayuda a crear una peliacutecula en la que el usuario pueda hacer por ejemplo un clic con el ratoacuten o presionar una tecla entonces se ejecuta un determinado Script Como podriacutea ser que se cargue otra peliacutecula El ActionScript quiere conseguir que estas peliacuteculas se comporten exactamente como el usuario determine Para conseguir que las peliacuteculas se comporten como el usuario quiere no es necesario entender todos los posibles usos de esta herramienta de creacioacuten 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 programacioacuten para la creacioacuten de Script orientado a objetos Lo que significa que cuando se dan determinados eventos (por ejemplo un clic del ratoacuten) se producen unas determinadas acciones Para comenzar a crear Script no es necesario tener un conocimiento amplio del ActionScript Por ejemplo algo sencillo seriacutea crear un Script que se lo asignamos a un botoacuten con el que queremos que al ser presionarlo nos cambie el brillo de un clip de peliacutecula Con el ActionScript tambieacuten podemos cambiar el color aumentar o reducir el volumen del sonido etc Pero estas son algunas las posibilidades que tiene este lenguaje de programacioacuten en este campo son muy amplias

EstructuraFlash estaacute compuesto por objetos con su respectiva ruta dentro del swf Cada uno de eacutestos en ActionScript pertenece a una clase (MovieClip botones Vectores (Arrays) etc) que contiene Propiedades y Meacutetodos o Funciones Propiedades Dentro del archivo raiacutez de la clase estaacuten declaradas como variables (alpha useHandCursor length) Meacutetodos o Funciones Dentro del archivo raiacutez de la clase estaacuten declaradas como funciones (stop() gotoAndPlay() getURL())

ActionScript 3

ActionScript 30 ofrece un modelo de la programacioacuten robusto que resultaraacute familiar a los desarrolladores con conocimientos baacutesicos sobre programacioacuten orientada a objetos Algunas de las principales funciones de ActionScript 30 son

Una nueva maacutequina virtual ActionScript denominada AVM2 que utiliza un nuevo conjunto de instrucciones de coacutedigo de bytes y proporciona importantes mejoras de rendimiento

Una base de coacutedigo de compilador maacutes moderna que se ajusta mejor al estaacutendar ECMAScript (ECMA 262) y que realiza mejores optimizaciones que las versiones anteriores del compilador

Una interfaz de programacioacuten de aplicaciones (API) ampliada y mejorada con un control de bajo nivel de los objetos y un auteacutentico modelo orientado a objetos

Un nuacutecleo del lenguaje basado en el proacuteximo borrador de especificacioacuten del lenguaje ECMAScript (ECMA-262) edicioacuten 4

Una API XML basada en la especificacioacuten de ECMAScript para XML (E4X) (ECMA-357 edicioacuten 2) E4X es una extensioacuten del lenguaje ECMAScript que antildeade XML como un tipo de datos nativo del lenguaje

Un modelo de eventos basado en la especificacioacuten de eventos DOM(modelo de objetos de documento)de nivel 3

Mientras que en ActionScript 20 las anotaciones de tipos eran principalmente una ayuda para el desarrollador en tiempo de ejecucioacuten se asignaban los tipos dinaacutemicamente a todos los valores En ActionScript 30 la informacioacuten de tipos se conserva en tiempo de ejecucioacuten y se utiliza con diversos fines Flash Player 9 realiza la comprobacioacuten de tipos en tiempo de ejecucioacuten lo que mejora la seguridad de tipos del sistema La informacioacuten

de tipos tambieacuten se utiliza para especificar variables en representaciones nativas de la maacutequina lo que mejora el rendimiento y reduce el uso de memoria

Lenguaje Erlang

Es un lenguaje funcional y de programacioacuten concurrente fue disentildeado por la compantildeiacutea Ericsson con el propoacutesito de hacer aplicaciones que puedan soportar fallos funcionamiento ininterrumpido aplicaciones distribuidas entre otras cosas

Tiene una caracteriacutestica muy importante el cambio de coacutedigo en caliente el cual se refiere a poder modificar el coacutedigo aun cuando la aplicacioacuten estaacute corriendo Erlang no seguiacutea la filosofiacutea de coacutedigo abierto hasta 1998 cuando Ericsson lo cedioacute como tal Erlang es un lenguaje interpretado aunque tambieacuten se puede compilar usando el compilador HiPE aunque este compilador solo es para algunas plataformas es muy bueno porque pude soportar la concurrencia caracteriacutestica muy distintiva del lenguaje Esta es la paacutegina oficial de HiPE

Es posible que pensemos que entender este proceso de concurrencia es complicado y maacutes auacuten aplicarlo en alguacuten programa pero en Erlang la concurrencia es explicita y no impliacutecita con en otros lenguajes El nombre de Erlang viene de las palabras Ericsson y Language

Erlang lenguaje funcional

Los programa en Erlang estaacuten compuestos de bloques funciones y las identificamos por su nombre y el numero de argumentos de entrada tambieacuten llamado aridad Por ejemplo las funciones multiplicacion2 multiplicacion3 multipicacion4 pueden existir perfectamente juntas y llamaacutendose a cada una seguacuten 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 ) -gtinstruccioacuteninstruccioacutenresultado_a_devolver

Tambieacuten podemos escribir alguna condicioacuten antes de gt podemos poner que si se cumple algo entonces se lleve a cabo determinada instruccioacuten esto lo hacemos con when una forma de implementarlo seriacutea

mi_funcion(dato1 dato2) when dato1 gt 0 -gtY algo muy importante en Erlang aprender a escribir el Hice un programa en Erlang que muestra su caracteriacutestica como lenguaje funcional bueno primero que nada abro el terminal y escribo

cecycecy-desktop~$ emacs -nw geomerl

Las caracteriacutesticas maacutes destacadas de Erlang son

Lenguaje funcional Soporte de concurrencia Tolerancia a fallas Cambio de coacutedigo en caliente Posibilidad de conectar con coacutedigo C Java y otros lenguajes

La concurrencia es una caracteriacutestica importantiacutesima del lenguaje fue creada especialmente para las aplicaciones de telecomunicaciones gran disponibilidad cambiar coacutedigo sin detener la aplicacioacuten etc

Lenguaje Ada

Ada es un lenguaje de programacioacuten orientado a objetos y fuertemente tipado de forma estaacutetica que fue disentildeado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos Es un lenguaje multipropoacutesito orientado a objetos y concurrente pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++ Fue disentildeado con la seguridad en mente y con una filosofiacutea orientada a la reduccioacuten de errores comunes y difiacuteciles de descubrir Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucioacuten (desactivarles en beneficio del rendimiento) La sincronizacioacuten 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 aeronaacuteutica (Boeing o Airbus) la gestioacuten del traacutefico aeacuterea y la industria aeroespacial entre otros Ada es uno de entre muchos posibles lenguajes de programacioacuten Fue disentildeado con un claro propoacutesito en mente la calidad del producto El lenguaje fue disentildeado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD) Durante los antildeos 1970 este departamento teniacutea proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software Para solucionarlo se buscoacute un lenguaje uacutenico que cumpliese unas ciertas normas recogidas en el documento Steelman Despueacutes de un estudio de los lenguajes existentes en la eacutepoca se decidioacute que ninguno las cumpliacutea totalmente por lo que se hizo un concurso puacuteblico 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 seleccionoacute la propuesta Verde disentildeada 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 antildeos 1970

Abstraccioacuten de datosSe puede obtener mayor transportabilidad y mejor mantenimiento si se pueden separar los detalles de la representacioacuten de los datos y las especificaciones de las operaciones loacutegicas sobre los mismos

Procesamiento paraleloPara 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 antildeadirlos por medio de llamadas al sistema operativo con lo que se consigue mayor transportabilidad y fiabilidad

Componentes leacutexicosSe pueden encontrar en Ada los siguientes componentes leacutexicos Identificadores Literales numeacutericos Literales de tipo caraacutecter Cadenas de caracteres Delimitadores Comentarios Palabras reservadas

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

Eacuteste es el tiacutepico Hola Mundo escrito en Ada with AdaText_IO procedure Hola_Mundo is

begin AdaText_IOPut(iexclHola mundo)end Hola_Mundo

Lenguaje Haskell

En los antildeos setenta se produjo lo que se conoce como la crisis del software La gran mayoriacutea del software que se produciacutea no era fiable Teniacutea una gran tasa de errores que poniacutea en grave peligro la confianza de los usuarios en estos sistemas Por esta razoacuten se propuso una solucioacuten crear un nuevo modelo programacioacuten lo que se conoce como programacioacuten funcional Dentro de este tipo de programacioacuten tenemos lenguajes como el Haskell el LISP el Miranda el Scheme etc El Haskell nacioacute como lenguaje de programacioacuten en el antildeo 1987 desde entonces se ha desarrollado considerablemente como un lenguaje de programacioacuten funcional puro de propoacutesito general El Haskell tiene todas las innovaciones de los lenguajes funcionales como son desarrollo de las funciones de orden superior evaluacioacuten perezosa tipos definidos por el usuario tipos polimoacuterficos estaacuteticos definiciones de listas por comprensioacuten encajes patronales etc Haskell es un lenguaje funcional puro no estricto y fuertemente tipificado Puro = transparencia referencial No estricto = usa un orden no aplicativo (Evaluacioacuten perezosa) Tipificacioacuten fuerte = los elementos del lenguaje utilizables estaacuten clasificados en distintas categoriacuteas o tipos

Un programa consiste en definiciones de funciones Declararla indicar el tipo Definirla dar el meacutetodo de computo

Los principales tipos de datos baacutesicos predefinidos en Haskell son Char Int Integer Float Double y Bool

- - Un ejemplo de ficheroHaskell- - Calcula el siguiente entero al argumentosucesor Integer Integersucesor x = x + 1- - Calcula la suma de los cuadrados de sus dos argumentossumaCuadrados Integer Integer IntegersumaCuadrados x y = x curren x + y curren y

El lenguaje evoluciona raacutepidamente y (ver maacutes abajo) como los representantes actuales del estaacutendar de facto El uacuteltimo estaacutendar semi-oficial es Haskell 2010 cuyas diferencias respecto al anterior estaacutendar Haskell 98 sonNuevas caracteriacutesticas del lenguaje

Interfaz de funciones foraacuteneas (FFI) que permite usar coacutedigo C en un programa Haskell y coacutedigo Haskell en un programa C Un ejemplo explicativo se puede encontrar aquiacute

Nombres jeraacuterquicos para los moacutedulos por ejemplo DataBool Guardianes con patrones

Funcioacuten recursiva para calcular el factorial de un nuacutemero natural --Funcioacuten recursiva que calcula la factorial de un nuacutemero natural factorial Integer -gt Integer factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = n factorial (n-1)Otra versioacuten de la funcioacuten para calcular el factorial de un natural usando la funcioacuten product del moacutedulo DataList

--Funcioacuten para calcular el factorial de un entero usando la funcioacuten product del moacutedulo DataList factorial Integer -gt Integer

factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = product [1n]

Lenguaje Progress 4GL (Lenguajes de Cuarta Generacioacuten)

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 coacutemodo y te permite programar muchas cosas con pocas liacuteneas 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 estaacute funcionando en muchas empresas incluyendo pequentildeas empresas hasta muy famosas y conocidas

Los lenguajes de cuarta generacioacuten o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creacioacuten de este Se han utilizado principalmente en la generacioacuten de coacutedigo para GUI y ademaacutes en la implementacioacuten de programas que facilitan las tareas de los desarrolladores y clientesLa base de los 4GL es que el usuario no dice como se haraacuten las cosas solo brinda paraacutemetros y el programa se encargara de generar el solicitado por el usuario sea esto desde generacioacuten de reportes de bases de datos a solucionar un problema matemaacutetico

Esta plataforma es muy potente ldquoGracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informaacuteticos de hoy en diacutea permitieacutendoles concentrarse en lo que realmente importa crear la loacutegica 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 plataformasrdquo OpenEdge es una plataforma abierta y flexible ldquoUn desarrollador de OpenEdge puede crear APIs para clientes de NET clientes de Javatrade 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 OpenEdgerdquo Progress incluye herramientas de programacioacuten y de bases de datos y recursos de servidores todo en su ambiente permitiendo faacutecil acceso a todos los recursos para crear aplicaciones Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos ya que el tamantildeo de las tablas puede ser excesivamente grande sin problema alguno ldquoAdemaacutes las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de maacutes de 30000 usuarios simultaacuteneosrdquoEsta garantiacutea de calidad que da Progress hace de este un programa muy usado en el momento con una gran funcionalidad Ademaacutes es un programa muy simple de utilizar en comparacioacuten a otros como SQL donde se tardariacutea mucho maacutes tiempo creando una base de datos

Tipos de lenguajes de cuarta generacioacuten

Existen diferentes tipos de lenguajes de cuarta generacioacuten cada uno con una funcioacuten en particular Entre ellos estaacuten los generadores de reportes los generadores de ldquoformsrdquo ambientes de cuarta generacioacuten administradores de datos y los generadores de aplicacionesLos generadores de reportes (Report Generators) toman una descripcioacuten del formato y el reporte a generar y de ahiacute 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 informacioacuten 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 ldquoFormsrdquo (Forms Generators) en algunos casos manejan iteraciones online con los usuarios de la aplicacioacuten o bien crean un programa para que manejen esta iteracioacuten Permiten que el usuario defina el

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 5: 50 lenguajes de programación y sus características

Lenguaje ActionScript

El ActionScript es un lenguaje de programacioacuten que crea Script (conjunto de instrucciones de un programa) de Flash con el que crear peliacuteculas con elementos interactivos El Flash es un programa para crear animaciones vectoriales para paacuteginas web El ActionScript nos ayuda a crear una peliacutecula en la que el usuario pueda hacer por ejemplo un clic con el ratoacuten o presionar una tecla entonces se ejecuta un determinado Script Como podriacutea ser que se cargue otra peliacutecula El ActionScript quiere conseguir que estas peliacuteculas se comporten exactamente como el usuario determine Para conseguir que las peliacuteculas se comporten como el usuario quiere no es necesario entender todos los posibles usos de esta herramienta de creacioacuten 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 programacioacuten para la creacioacuten de Script orientado a objetos Lo que significa que cuando se dan determinados eventos (por ejemplo un clic del ratoacuten) se producen unas determinadas acciones Para comenzar a crear Script no es necesario tener un conocimiento amplio del ActionScript Por ejemplo algo sencillo seriacutea crear un Script que se lo asignamos a un botoacuten con el que queremos que al ser presionarlo nos cambie el brillo de un clip de peliacutecula Con el ActionScript tambieacuten podemos cambiar el color aumentar o reducir el volumen del sonido etc Pero estas son algunas las posibilidades que tiene este lenguaje de programacioacuten en este campo son muy amplias

EstructuraFlash estaacute compuesto por objetos con su respectiva ruta dentro del swf Cada uno de eacutestos en ActionScript pertenece a una clase (MovieClip botones Vectores (Arrays) etc) que contiene Propiedades y Meacutetodos o Funciones Propiedades Dentro del archivo raiacutez de la clase estaacuten declaradas como variables (alpha useHandCursor length) Meacutetodos o Funciones Dentro del archivo raiacutez de la clase estaacuten declaradas como funciones (stop() gotoAndPlay() getURL())

ActionScript 3

ActionScript 30 ofrece un modelo de la programacioacuten robusto que resultaraacute familiar a los desarrolladores con conocimientos baacutesicos sobre programacioacuten orientada a objetos Algunas de las principales funciones de ActionScript 30 son

Una nueva maacutequina virtual ActionScript denominada AVM2 que utiliza un nuevo conjunto de instrucciones de coacutedigo de bytes y proporciona importantes mejoras de rendimiento

Una base de coacutedigo de compilador maacutes moderna que se ajusta mejor al estaacutendar ECMAScript (ECMA 262) y que realiza mejores optimizaciones que las versiones anteriores del compilador

Una interfaz de programacioacuten de aplicaciones (API) ampliada y mejorada con un control de bajo nivel de los objetos y un auteacutentico modelo orientado a objetos

Un nuacutecleo del lenguaje basado en el proacuteximo borrador de especificacioacuten del lenguaje ECMAScript (ECMA-262) edicioacuten 4

Una API XML basada en la especificacioacuten de ECMAScript para XML (E4X) (ECMA-357 edicioacuten 2) E4X es una extensioacuten del lenguaje ECMAScript que antildeade XML como un tipo de datos nativo del lenguaje

Un modelo de eventos basado en la especificacioacuten de eventos DOM(modelo de objetos de documento)de nivel 3

Mientras que en ActionScript 20 las anotaciones de tipos eran principalmente una ayuda para el desarrollador en tiempo de ejecucioacuten se asignaban los tipos dinaacutemicamente a todos los valores En ActionScript 30 la informacioacuten de tipos se conserva en tiempo de ejecucioacuten y se utiliza con diversos fines Flash Player 9 realiza la comprobacioacuten de tipos en tiempo de ejecucioacuten lo que mejora la seguridad de tipos del sistema La informacioacuten

de tipos tambieacuten se utiliza para especificar variables en representaciones nativas de la maacutequina lo que mejora el rendimiento y reduce el uso de memoria

Lenguaje Erlang

Es un lenguaje funcional y de programacioacuten concurrente fue disentildeado por la compantildeiacutea Ericsson con el propoacutesito de hacer aplicaciones que puedan soportar fallos funcionamiento ininterrumpido aplicaciones distribuidas entre otras cosas

Tiene una caracteriacutestica muy importante el cambio de coacutedigo en caliente el cual se refiere a poder modificar el coacutedigo aun cuando la aplicacioacuten estaacute corriendo Erlang no seguiacutea la filosofiacutea de coacutedigo abierto hasta 1998 cuando Ericsson lo cedioacute como tal Erlang es un lenguaje interpretado aunque tambieacuten se puede compilar usando el compilador HiPE aunque este compilador solo es para algunas plataformas es muy bueno porque pude soportar la concurrencia caracteriacutestica muy distintiva del lenguaje Esta es la paacutegina oficial de HiPE

Es posible que pensemos que entender este proceso de concurrencia es complicado y maacutes auacuten aplicarlo en alguacuten programa pero en Erlang la concurrencia es explicita y no impliacutecita con en otros lenguajes El nombre de Erlang viene de las palabras Ericsson y Language

Erlang lenguaje funcional

Los programa en Erlang estaacuten compuestos de bloques funciones y las identificamos por su nombre y el numero de argumentos de entrada tambieacuten llamado aridad Por ejemplo las funciones multiplicacion2 multiplicacion3 multipicacion4 pueden existir perfectamente juntas y llamaacutendose a cada una seguacuten 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 ) -gtinstruccioacuteninstruccioacutenresultado_a_devolver

Tambieacuten podemos escribir alguna condicioacuten antes de gt podemos poner que si se cumple algo entonces se lleve a cabo determinada instruccioacuten esto lo hacemos con when una forma de implementarlo seriacutea

mi_funcion(dato1 dato2) when dato1 gt 0 -gtY algo muy importante en Erlang aprender a escribir el Hice un programa en Erlang que muestra su caracteriacutestica como lenguaje funcional bueno primero que nada abro el terminal y escribo

cecycecy-desktop~$ emacs -nw geomerl

Las caracteriacutesticas maacutes destacadas de Erlang son

Lenguaje funcional Soporte de concurrencia Tolerancia a fallas Cambio de coacutedigo en caliente Posibilidad de conectar con coacutedigo C Java y otros lenguajes

La concurrencia es una caracteriacutestica importantiacutesima del lenguaje fue creada especialmente para las aplicaciones de telecomunicaciones gran disponibilidad cambiar coacutedigo sin detener la aplicacioacuten etc

Lenguaje Ada

Ada es un lenguaje de programacioacuten orientado a objetos y fuertemente tipado de forma estaacutetica que fue disentildeado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos Es un lenguaje multipropoacutesito orientado a objetos y concurrente pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++ Fue disentildeado con la seguridad en mente y con una filosofiacutea orientada a la reduccioacuten de errores comunes y difiacuteciles de descubrir Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucioacuten (desactivarles en beneficio del rendimiento) La sincronizacioacuten 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 aeronaacuteutica (Boeing o Airbus) la gestioacuten del traacutefico aeacuterea y la industria aeroespacial entre otros Ada es uno de entre muchos posibles lenguajes de programacioacuten Fue disentildeado con un claro propoacutesito en mente la calidad del producto El lenguaje fue disentildeado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD) Durante los antildeos 1970 este departamento teniacutea proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software Para solucionarlo se buscoacute un lenguaje uacutenico que cumpliese unas ciertas normas recogidas en el documento Steelman Despueacutes de un estudio de los lenguajes existentes en la eacutepoca se decidioacute que ninguno las cumpliacutea totalmente por lo que se hizo un concurso puacuteblico 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 seleccionoacute la propuesta Verde disentildeada 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 antildeos 1970

Abstraccioacuten de datosSe puede obtener mayor transportabilidad y mejor mantenimiento si se pueden separar los detalles de la representacioacuten de los datos y las especificaciones de las operaciones loacutegicas sobre los mismos

Procesamiento paraleloPara 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 antildeadirlos por medio de llamadas al sistema operativo con lo que se consigue mayor transportabilidad y fiabilidad

Componentes leacutexicosSe pueden encontrar en Ada los siguientes componentes leacutexicos Identificadores Literales numeacutericos Literales de tipo caraacutecter Cadenas de caracteres Delimitadores Comentarios Palabras reservadas

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

Eacuteste es el tiacutepico Hola Mundo escrito en Ada with AdaText_IO procedure Hola_Mundo is

begin AdaText_IOPut(iexclHola mundo)end Hola_Mundo

Lenguaje Haskell

En los antildeos setenta se produjo lo que se conoce como la crisis del software La gran mayoriacutea del software que se produciacutea no era fiable Teniacutea una gran tasa de errores que poniacutea en grave peligro la confianza de los usuarios en estos sistemas Por esta razoacuten se propuso una solucioacuten crear un nuevo modelo programacioacuten lo que se conoce como programacioacuten funcional Dentro de este tipo de programacioacuten tenemos lenguajes como el Haskell el LISP el Miranda el Scheme etc El Haskell nacioacute como lenguaje de programacioacuten en el antildeo 1987 desde entonces se ha desarrollado considerablemente como un lenguaje de programacioacuten funcional puro de propoacutesito general El Haskell tiene todas las innovaciones de los lenguajes funcionales como son desarrollo de las funciones de orden superior evaluacioacuten perezosa tipos definidos por el usuario tipos polimoacuterficos estaacuteticos definiciones de listas por comprensioacuten encajes patronales etc Haskell es un lenguaje funcional puro no estricto y fuertemente tipificado Puro = transparencia referencial No estricto = usa un orden no aplicativo (Evaluacioacuten perezosa) Tipificacioacuten fuerte = los elementos del lenguaje utilizables estaacuten clasificados en distintas categoriacuteas o tipos

Un programa consiste en definiciones de funciones Declararla indicar el tipo Definirla dar el meacutetodo de computo

Los principales tipos de datos baacutesicos predefinidos en Haskell son Char Int Integer Float Double y Bool

- - Un ejemplo de ficheroHaskell- - Calcula el siguiente entero al argumentosucesor Integer Integersucesor x = x + 1- - Calcula la suma de los cuadrados de sus dos argumentossumaCuadrados Integer Integer IntegersumaCuadrados x y = x curren x + y curren y

El lenguaje evoluciona raacutepidamente y (ver maacutes abajo) como los representantes actuales del estaacutendar de facto El uacuteltimo estaacutendar semi-oficial es Haskell 2010 cuyas diferencias respecto al anterior estaacutendar Haskell 98 sonNuevas caracteriacutesticas del lenguaje

Interfaz de funciones foraacuteneas (FFI) que permite usar coacutedigo C en un programa Haskell y coacutedigo Haskell en un programa C Un ejemplo explicativo se puede encontrar aquiacute

Nombres jeraacuterquicos para los moacutedulos por ejemplo DataBool Guardianes con patrones

Funcioacuten recursiva para calcular el factorial de un nuacutemero natural --Funcioacuten recursiva que calcula la factorial de un nuacutemero natural factorial Integer -gt Integer factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = n factorial (n-1)Otra versioacuten de la funcioacuten para calcular el factorial de un natural usando la funcioacuten product del moacutedulo DataList

--Funcioacuten para calcular el factorial de un entero usando la funcioacuten product del moacutedulo DataList factorial Integer -gt Integer

factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = product [1n]

Lenguaje Progress 4GL (Lenguajes de Cuarta Generacioacuten)

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 coacutemodo y te permite programar muchas cosas con pocas liacuteneas 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 estaacute funcionando en muchas empresas incluyendo pequentildeas empresas hasta muy famosas y conocidas

Los lenguajes de cuarta generacioacuten o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creacioacuten de este Se han utilizado principalmente en la generacioacuten de coacutedigo para GUI y ademaacutes en la implementacioacuten de programas que facilitan las tareas de los desarrolladores y clientesLa base de los 4GL es que el usuario no dice como se haraacuten las cosas solo brinda paraacutemetros y el programa se encargara de generar el solicitado por el usuario sea esto desde generacioacuten de reportes de bases de datos a solucionar un problema matemaacutetico

Esta plataforma es muy potente ldquoGracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informaacuteticos de hoy en diacutea permitieacutendoles concentrarse en lo que realmente importa crear la loacutegica 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 plataformasrdquo OpenEdge es una plataforma abierta y flexible ldquoUn desarrollador de OpenEdge puede crear APIs para clientes de NET clientes de Javatrade 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 OpenEdgerdquo Progress incluye herramientas de programacioacuten y de bases de datos y recursos de servidores todo en su ambiente permitiendo faacutecil acceso a todos los recursos para crear aplicaciones Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos ya que el tamantildeo de las tablas puede ser excesivamente grande sin problema alguno ldquoAdemaacutes las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de maacutes de 30000 usuarios simultaacuteneosrdquoEsta garantiacutea de calidad que da Progress hace de este un programa muy usado en el momento con una gran funcionalidad Ademaacutes es un programa muy simple de utilizar en comparacioacuten a otros como SQL donde se tardariacutea mucho maacutes tiempo creando una base de datos

Tipos de lenguajes de cuarta generacioacuten

Existen diferentes tipos de lenguajes de cuarta generacioacuten cada uno con una funcioacuten en particular Entre ellos estaacuten los generadores de reportes los generadores de ldquoformsrdquo ambientes de cuarta generacioacuten administradores de datos y los generadores de aplicacionesLos generadores de reportes (Report Generators) toman una descripcioacuten del formato y el reporte a generar y de ahiacute 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 informacioacuten 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 ldquoFormsrdquo (Forms Generators) en algunos casos manejan iteraciones online con los usuarios de la aplicacioacuten o bien crean un programa para que manejen esta iteracioacuten Permiten que el usuario defina el

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 6: 50 lenguajes de programación y sus características

de tipos tambieacuten se utiliza para especificar variables en representaciones nativas de la maacutequina lo que mejora el rendimiento y reduce el uso de memoria

Lenguaje Erlang

Es un lenguaje funcional y de programacioacuten concurrente fue disentildeado por la compantildeiacutea Ericsson con el propoacutesito de hacer aplicaciones que puedan soportar fallos funcionamiento ininterrumpido aplicaciones distribuidas entre otras cosas

Tiene una caracteriacutestica muy importante el cambio de coacutedigo en caliente el cual se refiere a poder modificar el coacutedigo aun cuando la aplicacioacuten estaacute corriendo Erlang no seguiacutea la filosofiacutea de coacutedigo abierto hasta 1998 cuando Ericsson lo cedioacute como tal Erlang es un lenguaje interpretado aunque tambieacuten se puede compilar usando el compilador HiPE aunque este compilador solo es para algunas plataformas es muy bueno porque pude soportar la concurrencia caracteriacutestica muy distintiva del lenguaje Esta es la paacutegina oficial de HiPE

Es posible que pensemos que entender este proceso de concurrencia es complicado y maacutes auacuten aplicarlo en alguacuten programa pero en Erlang la concurrencia es explicita y no impliacutecita con en otros lenguajes El nombre de Erlang viene de las palabras Ericsson y Language

Erlang lenguaje funcional

Los programa en Erlang estaacuten compuestos de bloques funciones y las identificamos por su nombre y el numero de argumentos de entrada tambieacuten llamado aridad Por ejemplo las funciones multiplicacion2 multiplicacion3 multipicacion4 pueden existir perfectamente juntas y llamaacutendose a cada una seguacuten 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 ) -gtinstruccioacuteninstruccioacutenresultado_a_devolver

Tambieacuten podemos escribir alguna condicioacuten antes de gt podemos poner que si se cumple algo entonces se lleve a cabo determinada instruccioacuten esto lo hacemos con when una forma de implementarlo seriacutea

mi_funcion(dato1 dato2) when dato1 gt 0 -gtY algo muy importante en Erlang aprender a escribir el Hice un programa en Erlang que muestra su caracteriacutestica como lenguaje funcional bueno primero que nada abro el terminal y escribo

cecycecy-desktop~$ emacs -nw geomerl

Las caracteriacutesticas maacutes destacadas de Erlang son

Lenguaje funcional Soporte de concurrencia Tolerancia a fallas Cambio de coacutedigo en caliente Posibilidad de conectar con coacutedigo C Java y otros lenguajes

La concurrencia es una caracteriacutestica importantiacutesima del lenguaje fue creada especialmente para las aplicaciones de telecomunicaciones gran disponibilidad cambiar coacutedigo sin detener la aplicacioacuten etc

Lenguaje Ada

Ada es un lenguaje de programacioacuten orientado a objetos y fuertemente tipado de forma estaacutetica que fue disentildeado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos Es un lenguaje multipropoacutesito orientado a objetos y concurrente pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++ Fue disentildeado con la seguridad en mente y con una filosofiacutea orientada a la reduccioacuten de errores comunes y difiacuteciles de descubrir Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucioacuten (desactivarles en beneficio del rendimiento) La sincronizacioacuten 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 aeronaacuteutica (Boeing o Airbus) la gestioacuten del traacutefico aeacuterea y la industria aeroespacial entre otros Ada es uno de entre muchos posibles lenguajes de programacioacuten Fue disentildeado con un claro propoacutesito en mente la calidad del producto El lenguaje fue disentildeado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD) Durante los antildeos 1970 este departamento teniacutea proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software Para solucionarlo se buscoacute un lenguaje uacutenico que cumpliese unas ciertas normas recogidas en el documento Steelman Despueacutes de un estudio de los lenguajes existentes en la eacutepoca se decidioacute que ninguno las cumpliacutea totalmente por lo que se hizo un concurso puacuteblico 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 seleccionoacute la propuesta Verde disentildeada 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 antildeos 1970

Abstraccioacuten de datosSe puede obtener mayor transportabilidad y mejor mantenimiento si se pueden separar los detalles de la representacioacuten de los datos y las especificaciones de las operaciones loacutegicas sobre los mismos

Procesamiento paraleloPara 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 antildeadirlos por medio de llamadas al sistema operativo con lo que se consigue mayor transportabilidad y fiabilidad

Componentes leacutexicosSe pueden encontrar en Ada los siguientes componentes leacutexicos Identificadores Literales numeacutericos Literales de tipo caraacutecter Cadenas de caracteres Delimitadores Comentarios Palabras reservadas

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

Eacuteste es el tiacutepico Hola Mundo escrito en Ada with AdaText_IO procedure Hola_Mundo is

begin AdaText_IOPut(iexclHola mundo)end Hola_Mundo

Lenguaje Haskell

En los antildeos setenta se produjo lo que se conoce como la crisis del software La gran mayoriacutea del software que se produciacutea no era fiable Teniacutea una gran tasa de errores que poniacutea en grave peligro la confianza de los usuarios en estos sistemas Por esta razoacuten se propuso una solucioacuten crear un nuevo modelo programacioacuten lo que se conoce como programacioacuten funcional Dentro de este tipo de programacioacuten tenemos lenguajes como el Haskell el LISP el Miranda el Scheme etc El Haskell nacioacute como lenguaje de programacioacuten en el antildeo 1987 desde entonces se ha desarrollado considerablemente como un lenguaje de programacioacuten funcional puro de propoacutesito general El Haskell tiene todas las innovaciones de los lenguajes funcionales como son desarrollo de las funciones de orden superior evaluacioacuten perezosa tipos definidos por el usuario tipos polimoacuterficos estaacuteticos definiciones de listas por comprensioacuten encajes patronales etc Haskell es un lenguaje funcional puro no estricto y fuertemente tipificado Puro = transparencia referencial No estricto = usa un orden no aplicativo (Evaluacioacuten perezosa) Tipificacioacuten fuerte = los elementos del lenguaje utilizables estaacuten clasificados en distintas categoriacuteas o tipos

Un programa consiste en definiciones de funciones Declararla indicar el tipo Definirla dar el meacutetodo de computo

Los principales tipos de datos baacutesicos predefinidos en Haskell son Char Int Integer Float Double y Bool

- - Un ejemplo de ficheroHaskell- - Calcula el siguiente entero al argumentosucesor Integer Integersucesor x = x + 1- - Calcula la suma de los cuadrados de sus dos argumentossumaCuadrados Integer Integer IntegersumaCuadrados x y = x curren x + y curren y

El lenguaje evoluciona raacutepidamente y (ver maacutes abajo) como los representantes actuales del estaacutendar de facto El uacuteltimo estaacutendar semi-oficial es Haskell 2010 cuyas diferencias respecto al anterior estaacutendar Haskell 98 sonNuevas caracteriacutesticas del lenguaje

Interfaz de funciones foraacuteneas (FFI) que permite usar coacutedigo C en un programa Haskell y coacutedigo Haskell en un programa C Un ejemplo explicativo se puede encontrar aquiacute

Nombres jeraacuterquicos para los moacutedulos por ejemplo DataBool Guardianes con patrones

Funcioacuten recursiva para calcular el factorial de un nuacutemero natural --Funcioacuten recursiva que calcula la factorial de un nuacutemero natural factorial Integer -gt Integer factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = n factorial (n-1)Otra versioacuten de la funcioacuten para calcular el factorial de un natural usando la funcioacuten product del moacutedulo DataList

--Funcioacuten para calcular el factorial de un entero usando la funcioacuten product del moacutedulo DataList factorial Integer -gt Integer

factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = product [1n]

Lenguaje Progress 4GL (Lenguajes de Cuarta Generacioacuten)

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 coacutemodo y te permite programar muchas cosas con pocas liacuteneas 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 estaacute funcionando en muchas empresas incluyendo pequentildeas empresas hasta muy famosas y conocidas

Los lenguajes de cuarta generacioacuten o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creacioacuten de este Se han utilizado principalmente en la generacioacuten de coacutedigo para GUI y ademaacutes en la implementacioacuten de programas que facilitan las tareas de los desarrolladores y clientesLa base de los 4GL es que el usuario no dice como se haraacuten las cosas solo brinda paraacutemetros y el programa se encargara de generar el solicitado por el usuario sea esto desde generacioacuten de reportes de bases de datos a solucionar un problema matemaacutetico

Esta plataforma es muy potente ldquoGracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informaacuteticos de hoy en diacutea permitieacutendoles concentrarse en lo que realmente importa crear la loacutegica 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 plataformasrdquo OpenEdge es una plataforma abierta y flexible ldquoUn desarrollador de OpenEdge puede crear APIs para clientes de NET clientes de Javatrade 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 OpenEdgerdquo Progress incluye herramientas de programacioacuten y de bases de datos y recursos de servidores todo en su ambiente permitiendo faacutecil acceso a todos los recursos para crear aplicaciones Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos ya que el tamantildeo de las tablas puede ser excesivamente grande sin problema alguno ldquoAdemaacutes las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de maacutes de 30000 usuarios simultaacuteneosrdquoEsta garantiacutea de calidad que da Progress hace de este un programa muy usado en el momento con una gran funcionalidad Ademaacutes es un programa muy simple de utilizar en comparacioacuten a otros como SQL donde se tardariacutea mucho maacutes tiempo creando una base de datos

Tipos de lenguajes de cuarta generacioacuten

Existen diferentes tipos de lenguajes de cuarta generacioacuten cada uno con una funcioacuten en particular Entre ellos estaacuten los generadores de reportes los generadores de ldquoformsrdquo ambientes de cuarta generacioacuten administradores de datos y los generadores de aplicacionesLos generadores de reportes (Report Generators) toman una descripcioacuten del formato y el reporte a generar y de ahiacute 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 informacioacuten 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 ldquoFormsrdquo (Forms Generators) en algunos casos manejan iteraciones online con los usuarios de la aplicacioacuten o bien crean un programa para que manejen esta iteracioacuten Permiten que el usuario defina el

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 7: 50 lenguajes de programación y sus características

Lenguaje Ada

Ada es un lenguaje de programacioacuten orientado a objetos y fuertemente tipado de forma estaacutetica que fue disentildeado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos Es un lenguaje multipropoacutesito orientado a objetos y concurrente pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++ Fue disentildeado con la seguridad en mente y con una filosofiacutea orientada a la reduccioacuten de errores comunes y difiacuteciles de descubrir Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucioacuten (desactivarles en beneficio del rendimiento) La sincronizacioacuten 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 aeronaacuteutica (Boeing o Airbus) la gestioacuten del traacutefico aeacuterea y la industria aeroespacial entre otros Ada es uno de entre muchos posibles lenguajes de programacioacuten Fue disentildeado con un claro propoacutesito en mente la calidad del producto El lenguaje fue disentildeado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD) Durante los antildeos 1970 este departamento teniacutea proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software Para solucionarlo se buscoacute un lenguaje uacutenico que cumpliese unas ciertas normas recogidas en el documento Steelman Despueacutes de un estudio de los lenguajes existentes en la eacutepoca se decidioacute que ninguno las cumpliacutea totalmente por lo que se hizo un concurso puacuteblico 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 seleccionoacute la propuesta Verde disentildeada 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 antildeos 1970

Abstraccioacuten de datosSe puede obtener mayor transportabilidad y mejor mantenimiento si se pueden separar los detalles de la representacioacuten de los datos y las especificaciones de las operaciones loacutegicas sobre los mismos

Procesamiento paraleloPara 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 antildeadirlos por medio de llamadas al sistema operativo con lo que se consigue mayor transportabilidad y fiabilidad

Componentes leacutexicosSe pueden encontrar en Ada los siguientes componentes leacutexicos Identificadores Literales numeacutericos Literales de tipo caraacutecter Cadenas de caracteres Delimitadores Comentarios Palabras reservadas

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

Eacuteste es el tiacutepico Hola Mundo escrito en Ada with AdaText_IO procedure Hola_Mundo is

begin AdaText_IOPut(iexclHola mundo)end Hola_Mundo

Lenguaje Haskell

En los antildeos setenta se produjo lo que se conoce como la crisis del software La gran mayoriacutea del software que se produciacutea no era fiable Teniacutea una gran tasa de errores que poniacutea en grave peligro la confianza de los usuarios en estos sistemas Por esta razoacuten se propuso una solucioacuten crear un nuevo modelo programacioacuten lo que se conoce como programacioacuten funcional Dentro de este tipo de programacioacuten tenemos lenguajes como el Haskell el LISP el Miranda el Scheme etc El Haskell nacioacute como lenguaje de programacioacuten en el antildeo 1987 desde entonces se ha desarrollado considerablemente como un lenguaje de programacioacuten funcional puro de propoacutesito general El Haskell tiene todas las innovaciones de los lenguajes funcionales como son desarrollo de las funciones de orden superior evaluacioacuten perezosa tipos definidos por el usuario tipos polimoacuterficos estaacuteticos definiciones de listas por comprensioacuten encajes patronales etc Haskell es un lenguaje funcional puro no estricto y fuertemente tipificado Puro = transparencia referencial No estricto = usa un orden no aplicativo (Evaluacioacuten perezosa) Tipificacioacuten fuerte = los elementos del lenguaje utilizables estaacuten clasificados en distintas categoriacuteas o tipos

Un programa consiste en definiciones de funciones Declararla indicar el tipo Definirla dar el meacutetodo de computo

Los principales tipos de datos baacutesicos predefinidos en Haskell son Char Int Integer Float Double y Bool

- - Un ejemplo de ficheroHaskell- - Calcula el siguiente entero al argumentosucesor Integer Integersucesor x = x + 1- - Calcula la suma de los cuadrados de sus dos argumentossumaCuadrados Integer Integer IntegersumaCuadrados x y = x curren x + y curren y

El lenguaje evoluciona raacutepidamente y (ver maacutes abajo) como los representantes actuales del estaacutendar de facto El uacuteltimo estaacutendar semi-oficial es Haskell 2010 cuyas diferencias respecto al anterior estaacutendar Haskell 98 sonNuevas caracteriacutesticas del lenguaje

Interfaz de funciones foraacuteneas (FFI) que permite usar coacutedigo C en un programa Haskell y coacutedigo Haskell en un programa C Un ejemplo explicativo se puede encontrar aquiacute

Nombres jeraacuterquicos para los moacutedulos por ejemplo DataBool Guardianes con patrones

Funcioacuten recursiva para calcular el factorial de un nuacutemero natural --Funcioacuten recursiva que calcula la factorial de un nuacutemero natural factorial Integer -gt Integer factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = n factorial (n-1)Otra versioacuten de la funcioacuten para calcular el factorial de un natural usando la funcioacuten product del moacutedulo DataList

--Funcioacuten para calcular el factorial de un entero usando la funcioacuten product del moacutedulo DataList factorial Integer -gt Integer

factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = product [1n]

Lenguaje Progress 4GL (Lenguajes de Cuarta Generacioacuten)

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 coacutemodo y te permite programar muchas cosas con pocas liacuteneas 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 estaacute funcionando en muchas empresas incluyendo pequentildeas empresas hasta muy famosas y conocidas

Los lenguajes de cuarta generacioacuten o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creacioacuten de este Se han utilizado principalmente en la generacioacuten de coacutedigo para GUI y ademaacutes en la implementacioacuten de programas que facilitan las tareas de los desarrolladores y clientesLa base de los 4GL es que el usuario no dice como se haraacuten las cosas solo brinda paraacutemetros y el programa se encargara de generar el solicitado por el usuario sea esto desde generacioacuten de reportes de bases de datos a solucionar un problema matemaacutetico

Esta plataforma es muy potente ldquoGracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informaacuteticos de hoy en diacutea permitieacutendoles concentrarse en lo que realmente importa crear la loacutegica 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 plataformasrdquo OpenEdge es una plataforma abierta y flexible ldquoUn desarrollador de OpenEdge puede crear APIs para clientes de NET clientes de Javatrade 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 OpenEdgerdquo Progress incluye herramientas de programacioacuten y de bases de datos y recursos de servidores todo en su ambiente permitiendo faacutecil acceso a todos los recursos para crear aplicaciones Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos ya que el tamantildeo de las tablas puede ser excesivamente grande sin problema alguno ldquoAdemaacutes las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de maacutes de 30000 usuarios simultaacuteneosrdquoEsta garantiacutea de calidad que da Progress hace de este un programa muy usado en el momento con una gran funcionalidad Ademaacutes es un programa muy simple de utilizar en comparacioacuten a otros como SQL donde se tardariacutea mucho maacutes tiempo creando una base de datos

Tipos de lenguajes de cuarta generacioacuten

Existen diferentes tipos de lenguajes de cuarta generacioacuten cada uno con una funcioacuten en particular Entre ellos estaacuten los generadores de reportes los generadores de ldquoformsrdquo ambientes de cuarta generacioacuten administradores de datos y los generadores de aplicacionesLos generadores de reportes (Report Generators) toman una descripcioacuten del formato y el reporte a generar y de ahiacute 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 informacioacuten 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 ldquoFormsrdquo (Forms Generators) en algunos casos manejan iteraciones online con los usuarios de la aplicacioacuten o bien crean un programa para que manejen esta iteracioacuten Permiten que el usuario defina el

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 8: 50 lenguajes de programación y sus características

begin AdaText_IOPut(iexclHola mundo)end Hola_Mundo

Lenguaje Haskell

En los antildeos setenta se produjo lo que se conoce como la crisis del software La gran mayoriacutea del software que se produciacutea no era fiable Teniacutea una gran tasa de errores que poniacutea en grave peligro la confianza de los usuarios en estos sistemas Por esta razoacuten se propuso una solucioacuten crear un nuevo modelo programacioacuten lo que se conoce como programacioacuten funcional Dentro de este tipo de programacioacuten tenemos lenguajes como el Haskell el LISP el Miranda el Scheme etc El Haskell nacioacute como lenguaje de programacioacuten en el antildeo 1987 desde entonces se ha desarrollado considerablemente como un lenguaje de programacioacuten funcional puro de propoacutesito general El Haskell tiene todas las innovaciones de los lenguajes funcionales como son desarrollo de las funciones de orden superior evaluacioacuten perezosa tipos definidos por el usuario tipos polimoacuterficos estaacuteticos definiciones de listas por comprensioacuten encajes patronales etc Haskell es un lenguaje funcional puro no estricto y fuertemente tipificado Puro = transparencia referencial No estricto = usa un orden no aplicativo (Evaluacioacuten perezosa) Tipificacioacuten fuerte = los elementos del lenguaje utilizables estaacuten clasificados en distintas categoriacuteas o tipos

Un programa consiste en definiciones de funciones Declararla indicar el tipo Definirla dar el meacutetodo de computo

Los principales tipos de datos baacutesicos predefinidos en Haskell son Char Int Integer Float Double y Bool

- - Un ejemplo de ficheroHaskell- - Calcula el siguiente entero al argumentosucesor Integer Integersucesor x = x + 1- - Calcula la suma de los cuadrados de sus dos argumentossumaCuadrados Integer Integer IntegersumaCuadrados x y = x curren x + y curren y

El lenguaje evoluciona raacutepidamente y (ver maacutes abajo) como los representantes actuales del estaacutendar de facto El uacuteltimo estaacutendar semi-oficial es Haskell 2010 cuyas diferencias respecto al anterior estaacutendar Haskell 98 sonNuevas caracteriacutesticas del lenguaje

Interfaz de funciones foraacuteneas (FFI) que permite usar coacutedigo C en un programa Haskell y coacutedigo Haskell en un programa C Un ejemplo explicativo se puede encontrar aquiacute

Nombres jeraacuterquicos para los moacutedulos por ejemplo DataBool Guardianes con patrones

Funcioacuten recursiva para calcular el factorial de un nuacutemero natural --Funcioacuten recursiva que calcula la factorial de un nuacutemero natural factorial Integer -gt Integer factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = n factorial (n-1)Otra versioacuten de la funcioacuten para calcular el factorial de un natural usando la funcioacuten product del moacutedulo DataList

--Funcioacuten para calcular el factorial de un entero usando la funcioacuten product del moacutedulo DataList factorial Integer -gt Integer

factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = product [1n]

Lenguaje Progress 4GL (Lenguajes de Cuarta Generacioacuten)

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 coacutemodo y te permite programar muchas cosas con pocas liacuteneas 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 estaacute funcionando en muchas empresas incluyendo pequentildeas empresas hasta muy famosas y conocidas

Los lenguajes de cuarta generacioacuten o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creacioacuten de este Se han utilizado principalmente en la generacioacuten de coacutedigo para GUI y ademaacutes en la implementacioacuten de programas que facilitan las tareas de los desarrolladores y clientesLa base de los 4GL es que el usuario no dice como se haraacuten las cosas solo brinda paraacutemetros y el programa se encargara de generar el solicitado por el usuario sea esto desde generacioacuten de reportes de bases de datos a solucionar un problema matemaacutetico

Esta plataforma es muy potente ldquoGracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informaacuteticos de hoy en diacutea permitieacutendoles concentrarse en lo que realmente importa crear la loacutegica 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 plataformasrdquo OpenEdge es una plataforma abierta y flexible ldquoUn desarrollador de OpenEdge puede crear APIs para clientes de NET clientes de Javatrade 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 OpenEdgerdquo Progress incluye herramientas de programacioacuten y de bases de datos y recursos de servidores todo en su ambiente permitiendo faacutecil acceso a todos los recursos para crear aplicaciones Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos ya que el tamantildeo de las tablas puede ser excesivamente grande sin problema alguno ldquoAdemaacutes las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de maacutes de 30000 usuarios simultaacuteneosrdquoEsta garantiacutea de calidad que da Progress hace de este un programa muy usado en el momento con una gran funcionalidad Ademaacutes es un programa muy simple de utilizar en comparacioacuten a otros como SQL donde se tardariacutea mucho maacutes tiempo creando una base de datos

Tipos de lenguajes de cuarta generacioacuten

Existen diferentes tipos de lenguajes de cuarta generacioacuten cada uno con una funcioacuten en particular Entre ellos estaacuten los generadores de reportes los generadores de ldquoformsrdquo ambientes de cuarta generacioacuten administradores de datos y los generadores de aplicacionesLos generadores de reportes (Report Generators) toman una descripcioacuten del formato y el reporte a generar y de ahiacute 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 informacioacuten 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 ldquoFormsrdquo (Forms Generators) en algunos casos manejan iteraciones online con los usuarios de la aplicacioacuten o bien crean un programa para que manejen esta iteracioacuten Permiten que el usuario defina el

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 9: 50 lenguajes de programación y sus características

factorial n | n lt 0 = error no existe el factorial para enteros negativos | n == 0 = 1 | otherwise = product [1n]

Lenguaje Progress 4GL (Lenguajes de Cuarta Generacioacuten)

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 coacutemodo y te permite programar muchas cosas con pocas liacuteneas 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 estaacute funcionando en muchas empresas incluyendo pequentildeas empresas hasta muy famosas y conocidas

Los lenguajes de cuarta generacioacuten o bien 4GL son herramientas encargadas de optimizar el desarrollo de software automatizando la creacioacuten de este Se han utilizado principalmente en la generacioacuten de coacutedigo para GUI y ademaacutes en la implementacioacuten de programas que facilitan las tareas de los desarrolladores y clientesLa base de los 4GL es que el usuario no dice como se haraacuten las cosas solo brinda paraacutemetros y el programa se encargara de generar el solicitado por el usuario sea esto desde generacioacuten de reportes de bases de datos a solucionar un problema matemaacutetico

Esta plataforma es muy potente ldquoGracias a ella los desarrolladores pueden olvidarse de las complejidades de los entornos informaacuteticos de hoy en diacutea permitieacutendoles concentrarse en lo que realmente importa crear la loacutegica 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 plataformasrdquo OpenEdge es una plataforma abierta y flexible ldquoUn desarrollador de OpenEdge puede crear APIs para clientes de NET clientes de Javatrade 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 OpenEdgerdquo Progress incluye herramientas de programacioacuten y de bases de datos y recursos de servidores todo en su ambiente permitiendo faacutecil acceso a todos los recursos para crear aplicaciones Progress garantiza a los usuarios disponibilidad y accesibilidad en sus bases de datos ya que el tamantildeo de las tablas puede ser excesivamente grande sin problema alguno ldquoAdemaacutes las pruebas realizadas han mostrado que la plataforma OpenEdge tiene una escalabilidad aproximada de maacutes de 30000 usuarios simultaacuteneosrdquoEsta garantiacutea de calidad que da Progress hace de este un programa muy usado en el momento con una gran funcionalidad Ademaacutes es un programa muy simple de utilizar en comparacioacuten a otros como SQL donde se tardariacutea mucho maacutes tiempo creando una base de datos

Tipos de lenguajes de cuarta generacioacuten

Existen diferentes tipos de lenguajes de cuarta generacioacuten cada uno con una funcioacuten en particular Entre ellos estaacuten los generadores de reportes los generadores de ldquoformsrdquo ambientes de cuarta generacioacuten administradores de datos y los generadores de aplicacionesLos generadores de reportes (Report Generators) toman una descripcioacuten del formato y el reporte a generar y de ahiacute 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 informacioacuten 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 ldquoFormsrdquo (Forms Generators) en algunos casos manejan iteraciones online con los usuarios de la aplicacioacuten o bien crean un programa para que manejen esta iteracioacuten Permiten que el usuario defina el

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 10: 50 lenguajes de programación y sus características

aspecto de la pantalla queacute informacioacuten se debe visualizar y en queacute lugar de la pantalla debe visualizarse Algunos generadores de formularios permiten la creacioacuten de atributos derivados utilizando operadores aritmeacuteticos y tambieacuten permiten especificar controles para la validacioacuten de los datos de entrada

Lenguaje PL1

PL1 acroacutenimo de Programming Language 1 (Lenguaje de Programacioacuten 1) fue propuesto por IBM hacia 1970 para responder simultaacuteneamente a las necesidades de las aplicaciones cientiacuteficas y comerciales disponible en las novedosas plataformas de utilidad general IBM 360 y maacutes adelante IBM 370Este lenguaje teniacutea muchas de las caracteriacutesticas que maacutes adelante adoptariacutea 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 disuadioacute a otras empresas de dar ese nombre a sus implementaciones No siendo posible encontrar un uacutenico lenguaje para diversas plataformas los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus muacuteltiples innovaciones que incluiacutean multiprocesamiento recursioacuten estructuras de control modernas facilidades para la puesta a punto asignacioacuten dinaacutemica de espacio para estructuras de datos procedimientos geneacutericos etc Sin embargo dentro de los usuarios de IBM el lenguaje se utilizoacute con bastante intensidad y el proyecto Multics utilizoacute PL1 como lenguaje de desarrollo para su sistema de operacioacuten

PL1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba

Ejemplos de coacutedigo Hola Mundo

Test procedure options(main) declare My_String char(20) varying initialize(Hola mundo) put skip list(My_String) end Test

Mostrar la posicioacuten de las liacuteneas que coinciden con un patroacuten

Lee una liacutenea 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) gt 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 diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 11: 50 lenguajes de programación y sus características

Lenguaje PowerBasic

Muchos usuarios comeinzan programando en lenguaje BASIC Por aquellos diacuteas era no estructurado (con nuacutemeros de liacutenea) e interpretado Ademaacutes en mi caso sobre un hardware de 8 bits

Bastante tiempo despueacutes con Turbo Basic llegueacute a la compilacioacuten que como ahora es conocido por todos permitiacutea transformar el coacutedigo fuente en este caso en coacutedigo ejecutable nativo Ademaacutes Turbo Basic implementaba un dialecto de BASIC estructurado que permitiacutea evitar el coacutedigo espagueti

Turbo Basic 10 escrito por Bob Zale y vendido a Borland aparecioacute en 1986 llegando a la revisioacuten 11 de 1987 A partir de este momento y por causas que nunca llegaron a aclararse quedoacute olvidado De este modo los que eacuteramos fieles a BASIC nos pasamos a Quick BASIC y BASIC Compiler BASIC Professional Development System de Microsoft

En 1990 el autor original crea PowerBASIC 20 como una actualizacioacuten sobre lo que ya aportara Turbo Basic 11 y que va recibiendo

actualizaciones hasta 1997 con la versioacuten 35 En aquel tiempo Powerbasic compite no solamente con otros compiladores de BASIC sino con Pascal y C en cuanto a eficiencia de coacutedigo y caracteriacutesticas Entre ellas hay que destacar los punteros el ensamblador en linea el soporte de memoria EMS o la generacioacuten de coacutedigo de 16 bits optimizado para procesadores 386

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 12: 50 lenguajes de programación y sus características

Lenguaje COBOL

El Cobol (del ingleacutes Common Business Oriented Language o Lenguaje Comuacuten Orientado a Negocios) se inventoacute en los antildeos 60 Nacioacute con el objetivo de ser un lenguaje de programacioacuten versaacutetil que pudiese ser usado en cualquier computador En los antildeos 60 era muy difiacutecil que el software creado para una maacutequina concreta sirviese para otra diferente Porque la mayoriacutea de estas computadoras eran incompatibles entre siacute Con el Cobol se queriacutea conseguir este lenguaje de programacioacuten que fue compatible con los principales modelos de computadoras Se queriacutea ademaacutes conseguir con este nuevo lenguaje de programacioacuten que estuviese destinado a los negocios concretamente a lo que conocemos como informaacutetica de gestioacuten Asiacute nacioacute el Cobol como un lenguaje de programacioacuten compatible con la mayoriacutea de las computadoras y destinado principalmente a la gestioacuten Por estas razones podemos decir que el Cobol es un lenguaje de programacioacuten que nada tiene que enviar a otros como el Visual Basic Delphi etc El Cobol cuenta con entornos de programacioacuten graacuteficos nos permite hacer aplicaciones con una interfaz graacutefica con SQL incrustada para que podamos tener acceso a la mayoriacutea de las bases de datos SQL del mercado El Cobol es ideal para el desarrollo de aplicaciones que soporten un gran nuacutemero de usuarios

Caracteriacutesticas del Lenguaje Cobol

1- Es un lenguaje auto-documentado se suponiacutea en un inicio que COBOL seriacutea un lenguaje accesible para agentes no programadores o sea se hablaba de que estos pudieran revisar el coacutedigo sin tener conocimientos de programacioacuten la idea a pesar de que no fue completamente efectiva hizo que cobol se convirtiera en el lenguaje auto-documentado maacutes faacutecil de entender2- Es un lenguaje simple con una funcionalidad limitada no tiene punteros ni funciones ni tipos definidos por el usuario3- Es portable su estaacutendar no pertenece a ninguna marca concreta y puede ser llevado a todo tipo de maacutequinas por ejemplo Windows UNIX OS2 entre otros4- Es mantenible como se ha dicho ya COBOL tiene una gran facilidad de interpretacioacuten y una gran legibilidad y ademaacutes tiene una riacutegida estructura jeraacuterquica y por medio de todo esto su mantenimiento se facilita muchiacutesimo Como ejemplo se podriacutea ver que en el antildeo 2000 con el problema Y2K muchas aplicaciones COBOL se vieron afectadas y de igual manera su reparacioacuten fue mucho maacutes faacutecil y barata en comparacioacuten con otros lenguajes5- Riacutegida estructura jeraacuterquica de que dispone

El eacutexito de COBOL

La mayoriacutea 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 tratariacutea de convencernos de que la mayoriacutea de la produccioacuten en el mundo se hace en Java C C++ o Visual Basic y que solo un pequentildeo porcentaje estaacute hecha en COBOL pero la realidad es bien distinta

Una de las razones para esta concepcioacuten erroacutenea radica en la diferencia entre el software vertical y el horizontal

En el mercado del software vertical las aplicaciones requieren de millones de doacutelares de inversioacuten para su produccioacuten estaacuten dirigidas a empresas concretas rigen las reglas de esa compantildeiacutea y existe un pequentildeo nuacutemero de copias funcionando en todo el mundo Un ejemplo es el sistema DoD MRP II que funciona en grandes servidores en determinados puntos geograacuteficos de EEUU y sirve para organizar componentes de equipos con inventarios por valor de alrededor de 28 billones de doacutelares

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 13: 50 lenguajes de programación y sus características

Sintaxis de COBOL

La sintaxis de COBOL estaacute definida usando una notacioacuten particular que se suele llamar MetaLenguaje COBOL

En esta notacioacuten las palabras en mayuacutesculas son siempre palabras reservadas Si una palabra estaacute subrayada significa que es obligatoria su inclusioacuten si no lo estaacuten pueden considerarse ldquoruidordquo o explicaciones con respecto a los demaacutes comandos para su legibilidad Dado que COBOL trata de parecerse al idioma ingleacutes hay muchas de estas palabras ldquoruidordquo Las palabras con mayuacutesculas y minuacutesculas representan nombres y como tal deben ser ideados por los propios programadoresCuando hay material encerrado entre llaves se trata de opciones que deben elegirse de entre los elementos contenidos como si de un conjunto algebraico se trataseCuando hay elementos encerrados entre corchetes [ ] indica que el material es opcional y puede ser incluido u omitido seguacuten se requieraCuando se encuentran puntos suspensivos indica que el elemento sintaacutectico precedente puede ser repetido o continuado a voluntad del programador

Diagrama sintaacutectico de ejemplo

En COBOL evaluar una expresioacuten aritmeacutetica y asignar el resultado a una variable de datos se consigue mediante el comando COMPUTE A continuacioacuten vemos el diagrama sintaacutectico de COMPUTE

COMPUTE Resulti [ROUNDED]

= Expresioacuten aritmeacutetica [

ON SIZE ERROR

]Instrucciones

END -

COMPUTE

NOT

ON

SIZE

ERROR

Este diagrama se interpretariacutea de la siguiente manera

Empezamos una instruccioacuten COMPUTE con la palabra COMPUTE

Seguimos con el nombre de la variable numeacuterica (o los nombres veacuteanse los puntos suspensivos) para recibir el resultado de la expresioacuten El sufijo i tras la variable Result nos indica que se trata de un identificador numeacuterico

LAS CUATRO DIVISIONES

En la parte superior de la jerarquiacutea de COBOL se encuentran las 4 Divisiones Eacutestas 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

Divisioacuten de Identificacioacuten Contiene informacioacuten de programaDivisioacuten de Entorno Contiene informacioacuten del entornoDivisioacuten de Datos Contiene descripciones de datosDivisioacuten de Procedimientos Contiene los algoritmos del programa

Los programas COBOL tienen estructura jeraacuterquica Cada elemento de la jerarquiacutea puede tener uno o maacutes elementos subordinados La jerarquiacutea es Divisiones Secciones Paacuterrafos Oraciones y ExpresionesUna Divisioacuten puede contener una o maacutes Secciones una Seccioacuten uno o maacutes Paacuterrafos un Paacuterrafo una o maacutes Oraciones y cada Oracioacuten una o maacutes ExpresionesDivisioacuten Es un bloque de coacutedigo normalmente contiene una o maacutes secciones y comienza donde se encuentra el nombre de la Divisioacuten y termina con la siguiente Divisioacuten o con el fin del programa

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 14: 50 lenguajes de programación y sus características

Seccioacuten Podemos aplicar la misma definicioacuten que en DivisioacutenLos nombres de secciones pueden ser creados por el programador o venir ya definidos en el lenguaje Un nombre de seccioacuten va seguido de SECTION y un punto

Lenguaje NATURAL

NATURAL es un lenguaje de cuarta generacioacuten de Software AG

Coacutedigo del programa iexclHola Mundo En NATURAL WRITE iexclHola MundoEND

Tiene la sentencia de control de flujo ESCAPE TOP la cual es similar a continue en C o Continue For en Visual BasicNET 2005 excepto que tambieacuten funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteraccioacuten del bucle de proceso Como continue evita gran nuacutemero de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle

Ejemplo con ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ESCAPE TOP END-IF IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ESCAPE TOP END-IF IF (I 5 5) = I AND I gt 5 WRITE Nuacutemero I es divisible entre 5 ESCAPE TOP END-IF IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ESCAPE TOP END-IF IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ESCAPE TOP END-IF WRITE Nuacutemero I es primoEND-FOREND

Los niveles de indentacioacuten pueden ser ajustados automaacuteticamente con el comando STRUCT dentro del Editor de NATURAL El mismo ejemplo sin ESCAPE TOP

DEFINE DATA LOCAL1 I (N3) 3 diacutegitos sin decimalesEND-DEFINEFOR I = 2 TO 100 IF (I 2 2) = I AND I gt 2 WRITE Nuacutemero I es divisible entre 2 ELSE IF (I 3 3) = I AND I gt 3 WRITE Nuacutemero I es divisible entre 3 ELSE IF (I 5 5) = I AND I gt 5

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 15: 50 lenguajes de programación y sus características

WRITE Nuacutemero I es divisible entre 5 ELSE IF (I 7 7) = I AND I gt 7 WRITE Nuacutemero I es divisible entre 7 ELSE IF (I 11 11) = I AND I gt 11 WRITE Nuacutemero I es divisible entre 11 ELSE WRITE Nuacutemero I es primo END-IF END-IF END-IF END-IF END-IFEND-FOREND

Lenguaje C Shell

Un shell en UNIX es un inteacuterprete 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 ampliacioacuten del Bournell shell En este capiacutetulo veremos por lo tanto una descripcioacuten del C shell El Cshell posee un lenguaje de programacioacuten similar al lenguaje de programacioacuten C de ahiacute el nombre de C shell

Las capacidades baacutesicas del C shell son Crear notaciones taquigraacuteficas para un comando o una serie de comandos Ejecutar varios trabajos simultaacuteneamente con o sin nuestra intervencioacuten 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 programacioacuten C razoacuten por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh

Edicioacuten de comandos histoacutericos y asignacioacuten de alias son alguna de las caracteriacutesticas 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 bincsh (Linux)

El mandato csh inicia el shell C

Cuando inicia la sesioacuten el mandato csh busca en primer lugar el archivo de configuracioacuten de todo el sistema etccshcshrc Si el archivo de configuracioacuten existe el shell C ejecuta los mandatos almacenados en dicho archivo A continuacioacuten el shell C ejecuta el archivo de configuracioacuten de todo el sistema etccshlogin si estaacute disponible Despueacutes busca en el directorio inicial los archivos cshrc y login Si existen contienen informacioacuten de usuario personalizada pertinente para ejecutar el shell C Todas las variables establecidas en los archivos etccshcshrc y etccshlogin podriacutean alterarlas temporalmente los archivos cshrc y login del directorio $HOME Soacutelo el usuario root puede modificar los archivos etccshcshrc y etccshlogin

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 16: 50 lenguajes de programación y sus características

Los archivos etccshlogin y $HOMElogin soacutelo se ejecutan una vez durante el inicio de sesioacuten 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 sesioacuten o los mandatos que establecen las caracteriacutesticas del terminal

Lenguaje Shell UNIX

El Shell

Se conoce con el nombre de Shell al programa que atiende a los oacuterdenes tecleadas en el terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema es decir es eacutel interprete de comandos del sistema operativo UNIX Tambieacuten se le conoce con el nombre de caparazoacuten (Anaacutelogo al Commandcom de MS-DOS)

El shell es tambieacuten un lenguaje de programacioacuten que soporta todas las estructuras propias de los lenguajes modernos Ademaacutes permite la utilizacioacuten de todas las primitivas del sistema operativo de control de procesos interrupciones y utilidades para disentildear 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 escribioacute el shell original de Unix denominado sh a partir de entonces la mayoriacutea 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 Tambieacuten 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 maacutes comunes en su aplicacioacuten interactiva (Los C tienen ventajas en cuanto a sus mejores caracteriacutesticas interactivas aunque son maacutes difiacuteciles de programar)

Estructura de una liacutenea de comandos

Una vez iniciada una sesioacuten UNIX y estando presente el prompt $ el interprete de comandos Shell estaacute preparado para recibir un comando cuya estructura es la siguiente

$ comando [paraacutemetros] [argumentos] [separador]

Nombre Nombre del comandoParaacutemetros Posibles variaciones de actuacioacuten del comandoArgumentos Nombre del elemento (archivo directorio) sobre el que se quiere aplicar el comandoSeparador Delimitador que sirve para separar comandosEjemplo

$cc -o Ejemploc Who

Comando Paraacutemetros argumento Separador Otro comando

Los comandos consisten en una secuencia de letras nuacutemeros y caracteres Hay que tener en cuenta que UNIX hace diferencia entre mayuacutesculas y minuacutesculas

Caracteriacutesticas del shell

La caracteriacutestica maacutes destacable del shell es la versatilidad facilidad de modificacioacuten y de adaptacioacuten 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 informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 17: 50 lenguajes de programación y sus características

Metacaracteres caracteres especiales con significado propio Filtros que se encargan de gestionar la informacioacuten de los ficheros Conexionado entre oacuterdenes mediante el uso de tuberias (pipes) Cuando se interconexionan dos

oacuterdenes la salida de un proceso se convierte en la entrada del siguiente Asiacute se elimina la necesidad de crear ficheros temporales intermedios

Lenguaje Shell-Script

Ya vimos hace algunas lecciones una introduccioacuten 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 leccioacuten veremos que es mucho maacutes 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 leccioacuten le permitiraacute dar un salto enorme en el aprovechamiento de su SO Linux

El lenguaje shell-script es muy versaacutetil aunque hay que advertir que es bastante ineficiente Son mucho maacutes eficientes los programas escritos en lenguaje C Este es el lenguaje en el que se escribioacute 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 combinacioacuten con una serie de comandos tambieacuten muy potentes disponibles en Linux Algunas partes del SO que no pertenecen al kernel estaacuten escritas en shell-script Por ejemplo muchos comandos que se van ejecutando en secuencia mientras el sistema arranca son programas realizados en shell-script asiacute que la ineficiencia no es ninguacuten obstaacuteculo 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

Ejecucioacuten con la shell-actual

Hasta este momento siempre hemos arrancado una sub-shell que leiacutea las oacuterdenes del fichero las ejecutaba y despueacutes terminaba y moriacutea cediendo el control nuevamente a la shell original que arrancoacute la sub-shell Existe una forma de decirle a la shell actual que lea y ejecute una serie de oacuterdenes por si misma sin arrancar una sub-shell Para ello hay que anteponer un punto y un blanco al nombre del comando Nuevamente solo haraacute 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 asiacute Veamos un ejemplo en el que se aprecie la diferencia $$ tomaraacute el valor del pid de la shell en ejecucioacuten y $PPID tomaraacute el valor del pid del proceso padre

$echo echo $PPID $$ gt fichero_ordenes$ bash fichero_ordenes

213 2396

$ fichero_ordenes

1 213

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 18: 50 lenguajes de programación y sus características

Evidentemente cuando pruebe este ejemplo obtendraacute 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 programacioacuten concurrente y compilado inspirado en la sintaxis de C Ha sido desarrollado por Google y sus disentildeadores iniciales son Robert Griesemer Rob Pike y Ken Thompson Actualmente soacutelo estaacute disponible para los sistemas operativos Windows GNULinux y Mac OS X[

El diacutea de la publicacioacuten del lenguaje Go Francis McCabe desarrollador del lenguaje de programacioacuten Go (Anteriormente llamado Go) solicitoacute que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje[4] McCabe creoacute Go en el antildeo 2003 sin embargo auacuten no ha registrado el nombre [5] Go es un nuevo lenguaje de programacioacuten para sistemas lanzado por Google en noviembre de 2009 Aunque empezoacute a ser desarrollado en septiembre de 2007 por Robert Griesemer Rob Pike y Ken Thompson

Go es un lenguaje de programacioacuten compilado concurrente imperativo estructurado orientado a objetos mdashde una manera bastante especialmdash y con recolector de basura que de momento estaacute soportado en diferentes tipos de sistemas UNIX incluidos Linux FreeBSD y Mac OS X Tambieacuten estaacute disponible en Plan 9 puesto que parte del compilador estaacute basado en un trabajo previo sobre el sistema operativo Inferno

Caracteriacutesticas

Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy coacutemodos con eacutel Go usa tipado estaacutetico (statically typed) y es tan eficiente como C Go tiene muchas de las caracteriacutesticas y facilidad de lenguajes dinaacutemicos como Python Aun siendo un lenguaje disentildeado para la programacioacuten de sistemas provee de un recolector de basura reflexioacuten y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente Go admite el paradigma de programacioacuten orientada a objetos pero a diferencia de los lenguajes de programacioacuten maacutes 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 definicioacuten de un tipo (clase) se realiza por medio de declaraciones separadas (interfaces structs embedded values) Go permite el uso de delegacioacuten (a traveacutes de embedded values) y polimorfismo (por medio de interfaces)

Go al igual que C y C++ es un lenguaje compilado con algunas caracteriacutesticas peculiares

Es un lenguaje concurrente que soporta canales de comunicacioacuten basados en el lenguaje CSP de Sir Charles Antony Richard Hoare creador del algoritmo de ordenacioacuten QuickSort y ganador del Turing en 1980 La concurrencia en Go es diferente a los criterios de programacioacuten basados en bloqueos como pthreads

El claacutesico programa Hola mundo en Go es similiar a como se hariacutea en C++ Con este miacutetico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares

package mainimport fmtfunc main()

fmtPrintf(Hola mundon)

La notacioacuten de los comentarios es exactamente la misma que la de C++

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 19: 50 lenguajes de programación y sus características

Lenguaje Meta o ML

ML es un lenguaje de programacioacuten funcional (impuro) de propoacutesito 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 taacutecticas de pruebas en el sistema demostrador de teoremas LCF Es conocido por el uso del algoritmo de inferencia del tipo HindleyndashMilner que puede automaacuteticamente inferir los tipos de la mayoriacutea de las expresiones sin necesidad de que expliacutecitamente 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 programacioacuten funcional tales como Haskell Entre las caracteriacutesticas de ML se incluyen evaluacioacuten por valor aacutelgebra de funciones manejo automatizado de memoria por medio de recoleccioacuten de basura polimorfismo parametrizado anaacutelisis de estaacutetico de tipos inferencia de tipos tipos de datos algebraicos llamada por patrones y manejo de excepciones Esta combinacioacuten particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles

En la actualidad varios lenguajes de la familia ML estaacuten disponibles principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto) Varias ideas aparecidas en ML han influido el disentildeo de otros lenguajes tales como Cyclone y Nemerle Los lenguajes de la familia ML se aplican principalmente en disentildeo y manipulacioacuten de lenguajes de programacioacuten (compiladores analizadores demostradores de teoremas) asiacute como en bioinformaacutetica sistemas financieros protocolos de sincronizacioacuten etc

Primeros pasos en ML

Manejando cadenas de caracteres - Hola Mundo val it = Hola Mundo string

Operando enteros - 3+4 it = 7 int

Creacioacuten de funciones fun ltnombregt ltparaacutemetrosgt = ltexpresioacutengt fun doble x = 2x fun incremento x = x+1

Tipos baacutesicosTipos baacutesicos integer real string char boolean

Listas de enteros[123] int list

Lista de cadenas de caracteres[ldquoDavidldquoJesuacutesldquoldquoBlas] string list

Listas compuestas[(23)(22)(91)] (int int) list

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 20: 50 lenguajes de programación y sus características

Listas de listas[[][1][12]] int list list

Lenguaje Standard ML

El lenguaje de programacioacuten Standard ML o SML es un lenguaje descendiente del lenguaje ML que nacioacute como el Meta Lenguaje del sistema LCF A diferencia de muchos otros lenguajes de programacioacuten SML tiene una especificacioacuten formal como semaacutentica operacional publicada en el libro The Definition of Standard ML

Implantaciones

Standard ML of New Jersey (abreviado SMLNJ) es un compilador completo junto con sus bibliotecas herramientas y documentacioacuten

Moscow ML es una implementacioacuten liviana basada en el ambiente de ejecucioacuten de CAML Light Implementa el lenguaje SML completo incluyendo sus moacutedulos tambieacuten incluye la mayor parte de la biblioteca de ase de SML

MLton es un compilador para programas completos (no maneja la nocioacuten de moacutedulos)

PolyML es una implantacioacuten completa de Standard ML

SML2c es un compilador para firmas estructuras y funciones que genera coacutedigo en lenguaje C Estaacute basado en SMLNJ versioacuten 067 y comparte con esa versioacuten la mayor parte del ambiente de ejecucioacuten pero no planta ni herramientas de puesta a punto ni perfiles de ejecucioacuten La compatibilidad a nivel de los moacutedulos con SMLNJ 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 (VBNET) Es un lenguaje de programacioacuten orientado a objetos que se puede considerar una evolucioacuten de Visual Basic implementada sobre el framework NET Su introduccioacuten resultoacute muy controvertida ya que debido a cambios significativos en el lenguaje VBNETno es compatible hacia atraacutes con Visual Basic pero el manejo de las instrucciones es similar aversiones anteriores de Visual Basic facilitando asi el desarollo de aplicaciones maacutes avanzadas con herramientas modernas

La gran mayoriacutea de programadores de VBNET 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 ademaacutes es libre)ltbr gt Al igual que con todos los lenguajes de programacioacuten 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 tecnoloacutegica de soporte definida normalmente con artefactos o moacutedulos de software concretos con base en la cual otro proyecto de software puede ser organizado y desarrollado Tiacutepicamente 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 eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 21: 50 lenguajes de programación y sus características

NET es un framework de Microsoft que hace un eacutenfasis en la transparencia de redes con independencia de plataforma de hardware y que permita un raacutepido 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 antildeadido al sistema operativo Windows Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacioacuten de aplicaciones y administra la ejecucioacuten de los programas escritos especiacuteficamente con la plataforma Esta solucioacuten es el producto principal en la oferta de Microsoft y pretende ser utilizada por la mayoriacutea 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 versioacuten actual de dicho componente puede ser instalada en Windows XP y en la familia de sistemas operativos Windows Server 2003 Una versioacuten reducida de NET Framework estaacute disponible para la plataforma Windows Mobile incluyendo teleacutefonos inteligentes Al igual que con todos los lenguajes de programacioacuten 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 versioacuten de Visual Basic o si debe considerarse como un nuevo lenguaje de programacioacuten es un tema que ha traiacutedo mucha discusioacuten y que auacuten la trae

La sintaxis baacutesica es praacutecticamente la misma entre VB y VBNET con la excepcioacuten de los antildeadidos para soportar nuevas caracteriacutesticas como el control estructurado de excepciones la programacioacuten orientada a objetos o los Geneacutericos

Las diferencias entre VB y VBNET son profundas sobre todo en cuanto a metodologiacutea de programacioacuten y bibliotecas pero ambos lenguajes siguen manteniendo un gran parecido cosa que facilita notablemente el paso de VB a VBNET

Visual Basic 2008 (VB 90)

Para esta versioacuten se antildeadieron varias novedades incluyendo

Soporte para LINQ Expresiones lambda Literales XML

Visual Basic 2010 (VB 100)

Visual Basic 2010 ofrece soporte para entorno de ejecucioacuten dinaacutemica VB 2010 forma parte de Microsoft Silverlight Visual Basic es un lenguaje de programacioacuten que permite realizar diferentes programas de registro anidados Entornos de desarrollo (IDE) alternativos a Visual Studio

Para desarrollar en VBNET existen algunas alternativas a Visual Studio quizaacutes la maacutes notable sea SharpDevelop

SharpDevelop

SharpDevelop es un entorno de programacioacuten integrado que permite programar en C y en VBNET Este es un entorno publicado bajo licencia LGPL lo que implica que es libre y que disponemos del coacutedigo fuente

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 22: 50 lenguajes de programación y sus características

MonoDevelop

MonoDevelop es una implementacioacuten de SharpDevelop para programar usando Mono una implementacioacuten libre de NET que funciona en distintos sistemas operativos

Lenguaje F

F es un lenguaje de programacioacuten que proporciona compatibilidad con la programacioacuten funcional asiacute como con la programacioacuten 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 coacutedigo 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 programacioacuten ML y es compatible con la implementacioacuten Objective Caml F fue inicialmente desarrollado por Miguel Tentei Corteacutes Soloacuterzano y Don Syme de Microsoft Research pero actualmente estaacute siendo desarrollado por la Divisioacuten 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 programacioacuten funcional tales como

Funciones como valores lo que permite la manipulacioacuten flexible de las funciones Para obtener maacutes informacioacuten vea Funciones como valores de primera clase (F)

Composicioacuten y canalizacioacuten de funciones lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificacioacuten de operaciones sucesivas con datos Para obtener maacutes informacioacuten vea Funciones (F)

Inferencia de tipos lo que reduce la necesidad de llamar expliacutecitamente a los tipos sin sacrificar la seguridad de tipos

Generalizacioacuten automaacutetica lo que promueve la reutilizacioacuten de coacutedigo facilitando la escritura de coacutedigo que funciona con diversos tipos diferentes sin ninguacuten esfuerzo adicional

Compatibilidad con la coincidencia de modelos lo que simplifica el coacutedigo condicional complejo y las uniones discriminadas que se optimizan para su uso con la coincidencia de modelos

Tipos de coleccioacuten para trabajar con datos inmutables incluidos tipos de lista y secuencia Expresiones lambda que son importantes para numerosas construcciones de programacioacuten funcional Aplicacioacuten parcial de argumentos de funcioacuten lo que permite crear impliacutecitamente nuevas funciones a partir de

funciones existentes Para obtener maacutes informacioacuten vea Funciones (F) Expresiones de coacutedigo delimitadas una caracteriacutestica que permite manipular las expresiones de F mediante

programacioacuten

Las funciones y expresiones que no retornan ninguacuten valor tienen como tipo de retorno unit F usa la palabra clave let para enlazar valores a nombres Por ejemplo

let x = 3 + 4Enlaza el valor 7 al nombre x

Nuevos tipos son definidos usando la palabra clave type Para una programacioacuten funcional F provee los tipos tuple record discriminated union list y option Una tupla representa una coleccioacuten de n valores El valor n es llamado la aridad de la tupla Una 3-tuple podriacutea 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 Namestring Ageint 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 reacutecord copiando r y cambiando el valor del campo Name (asumiendo que el reacutecord creado en el ejemplo anterior fue nombrado r)

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 23: 50 lenguajes de programación y sus características

Un tipo discriminated union es un type-safe versioacuten 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 caacutelculo numeacuterico disentildeado en sus inicios para las computadoras IBM y usado en aplicaciones cientiacuteficas y de ingenieriacutea y es el maacutes antiguo de los Lenguajes de alto nivel El FORTRAN desde sus inicios dominoacute el aacuterea de la programacioacuten y se ha mantenido su desarrollo y aplicacioacuten por maacutes de 50 antildeos en distintos segmentos de la ciencia y teacutecnica El FORTRAN uno de los lenguajes maacutes usados en la Computacioacuten de alto rendimiento ademaacutes se utiliza para el desarrollo de programas que evaluacutean el desempentildeo 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 programacioacuten FORTRAN tiene varias versiones las cuales antildeaden mejor funcionalidad al mismo

El nacimiento de este lenguaje se debe principalmente a John Backus en unioacuten 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 noacutemina de IBM quienes en 1954 presentan el informe titulado ldquoPreliminary Report Specifications for the IBM Mathematical FORmula TRANslating System FORTRANrdquoSe caracteriza por su potencia en los caacutelculos matemaacuteticos pero estaacute limitado en las aplicaciones de gestioacuten manejo de archivos tratamiento de cadenas de caracteres y edicioacuten de informes Es un lenguaje notorio por la facilidad con que permite expresar una ecuacioacuten FORTRAN fue disentildeado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas por lo que el orden de las instrucciones debiacutea ser secuencial es decir la programacioacuten de los algoritmos era lineal para producir cualquier alteracioacuten del orden de la loacutegica se introduce la instruccioacuten Goto

Estructura baacutesica de un programa FORTRAN- Declarations- Main program- Subprogram 1 - Subprogram 2 - Subprogram n - Los subprogramas son pequentildeos programas que se ejecutan a voluntad del programador

Fortran 90 incorpora los moacutedulos la recursividad y sobrecargas de operadores ademaacutes nuevos tipos de datos Se considera una actualizacioacuten 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 Programacioacuten orientada a objetos

A continuacioacuten se muestra el coacutedigo fuente en lenguaje Fortran de un programa que permite realizar un ajuste o regresioacuten lineal de una serie de datos

REGRESION LINEALFORTRANSAPLICACION DIMENSION TIEMPO(1000)PROD(1000) OPEN(1FILE=HISTORIAtxt) I=0 10 READ(1END=80)TP

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 24: 50 lenguajes de programación y sus características

I=I+1 TIEMPO(I)=T PROD(I)=P GO TO 10 80 NDATOS=I CALL AJULIN(TIEMPOPRODNDATOSAB) WRITE(90)AB 90 FORMAT(LA ECUACION ESY=F102+F102X) 20 FORMAT(20F100) END

Lenguaje ABAP

El ABAP (Advanced Business Application Programming o Procesador Geneacuterico para la Preparacioacuten de Informes) es un lenguaje de programacioacuten de cuarta generacioacuten El ABAP se utiliza para programar los Sistemas de Planificacioacuten de Recursos de una empresa ABAP fue desarrollado por SAP como lenguaje de informes para SAP R2 en los antildeos 80 una plataforma que permitiacutea a las grandes corporaciones construir aplicaciones de negocios para gestioacuten de materiales y finanzas ABAP muy parecido al COBOL en sus oriacutegenes originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor palabras alemanas para procesador geneacuterico para la preparacioacuten de informes En sus inicios ABAP incluiacutea el concepto de Bases de datos loacutegicas que suministraba un alto nivel de abstraccioacuten para el acceso a bases de datos

Estos sistemas de planificacioacuten de recursos son procedimientos de gestioacuten de la informacioacuten que automatizan la mayoriacutea de las praacutecticas de negocio relativas a los aspectos operativos o productivos de cualquier organizacioacuten Toda esta gestioacuten se lleva a cabo a traveacutes de una serie de moacutedulos como por ejemplo finanzas ventas y distribucioacuten logiacutestica gestioacuten de materiales recursos humanos etc El ABAP es un lenguaje de programacioacuten especializado en la gestioacuten de los sistemas de planificacioacuten de recursos de las empresas Utiliza sentencias de otro lenguaje de programacioacuten el Open SQL para conectar bases de datos Es buen lenguaje para el manejo de archivos bases de datos fechas etc

El ABAP se inventoacute en los antildeos 80 con este lenguaje se queriacutea conseguir una especie de plataforma que permitiera a las grandes empresas crear aplicaciones para mejorar la gestioacuten de sus negociosActualmente muchas empresas estaacuten usando el ABAP como lenguaje de programacioacuten que es capaz de soportar un enorme caudal de transacciones como es el caso de la banca El Cobol realizaba antes de la deacutecada de los 80 estas tareas hoy en diacutea el ABAP le estaacute quitando mercado al Cobol la mayoriacutea de la empresas han apostado por el ABAP uacutenicamente 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

SintaxisUna breve descripcioacuten acerca de la sintaxis de ABAP comienza inevitablemente por el conocido ldquoHola mundordquo

Hola MundoREPORT TESTWRITE 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 liacutenea donde pondraacute ldquoHola Mundordquo La declaracioacuten REPORT indica que este programa es un informe Alternativamente se podriacutea usar PROGRAM para los lsquomodule poolrsquoABAP posee dos formas de definir comentarios

Un asterisco a la izquierda de la liacutenea hace que toda la liacutenea sea un comentario Las doble comillas en cualquier lugar en una liacutenea hace que el resto de la misma se convierta en un

comentarioREPORT BOOKINGS

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 25: 50 lenguajes de programación y sus características

Leer libros de vuelo de la base de datosSELECT FROM FLIGHTINFO WHERE CLASS = Y Y = precio OR CLASS = C C = clase()

Lenguaje ALICE

Alice es un lenguaje de programacioacuten funcional disentildeado en el Programming Systems Lab de la Universidad del Sarre Es un dialecto de Standard ML extendido con soporte para evaluacioacuten perezosa Concurrencia (Programacioacuten muti-hebras y programacioacuten distribuida por medio de llamada remota de procedimientos) y Programacioacuten por restricciones

La implementacioacuten de Alice de la Universidad Saarland utiliza la maacutequina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en ingleacutes) Es un Software libre que incluye compilacioacuten al vuelo hacia coacutedigo binario propio asiacute como para coacutedigo de maacutequina para la arquitectura x86

El mecanismo de llamada remota de procedimientos de Alice depende de su maacutequina virtual y permite realizar llamadas entre diferentes computadores

Ejemplo

Alice extiende Standard ML con primitivas para evaluacioacuten perezosa y concurrencia Por ejemplo se puede crear nuevas hebras (threads en ingleacutes) con la primitiva spawn El ejemplo siguiente implemente de forma ingenua una funcioacuten que calcula los nuacutemeros 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 coacutemputo aumentaraacute sustancialmente Ese caacutelculo puede realizarse en una hebra diferente al evaluar

Paradigma Multiparadigmaimperativofuncionalparaleloimperativo

Aparecioacute en 2000

Disentildeado por Universidad del Sarre

Uacuteltima versioacuten estable 14 (3 de mayo de 2007)

Tipo de dato Fuertemente tipadoinferencia de tipos

Influido por Meta LenguajeOz

Sistema operativo Multiplataforma

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 26: 50 lenguajes de programación y sus características

val x = spawn fib n

La variable x se liga a un valor futuro Cuando una operacioacuten requiere el valor actual de x su evaluacioacuten queda bloqueada hasta tanto el valor esteacute disponible

Lenguaje R

R es un lenguaje y entorno de programacioacuten para anaacutelisis estadiacutestico y graacutefico Su historia ya fue contada en genbetadev y no quiero ser repetitivo pero para hacer un resumen podriacuteamos decir que es un dialecto libre del lenguaje S desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadiacutestica de la Universidad de Auckland en 1993

R al estar orientado a las estadiacutesticas proporciona un amplio abanico de herramientas

Entre otras caracteriacutesticas de R podemos nombrar su capacidad graacutefica que permite generar graacuteficos con alta calidad con soacutelo utilizar las funciones de graficacioacuten

R tambieacuten puede usarse como herramienta de caacutelculo numeacuterico y a la vez ser uacutetil para la mineriacutea de datos

R es un poderoso entorno y lenguaje en el cual podemos tratar datos y graacuteficar Pero no quiero detenerme en el entorno sino que quiero revisar el lenguaje Al igual que S se trata de un lenguaje de programacioacuten lo que permite que permite extender sus propias funciones La gran mayoriacutea de las funciones de R fueron escritas en R pero por cuestiones de rendimiento existen funciones escritas en lenguajes de maacutes bajo nivel como C o Fortran R es un lenguaje interpretado el usuario normalmente accede por liacuteneas de comandos o consola Veamos unos ejemplos

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

gt print(Hola Mundo)gt [1] Hola Mundo

Sumemos 2 nuacutemeros

gt 2 + 3gt [1] 5

iquestPero queacute hace tan potente a R Momento recieacuten empezamos Veamos a R haciendo lo que mejor sabe hacer analizar datos

Vamos a crear una coleccioacuten

gt x lt- c(123456)

Vamos a calcular el cuadrado de cada elemento

gt y lt- x^2gt ygt [1] 1 4 9 16 25 36

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 27: 50 lenguajes de programación y sus características

Ahora vamos a calcular la media la varianza y vamos a graficar gt mean(y)gt [1] 1516667gt var(y)gt [1] 1789667gt plot (y)

Lenguaje M (MATLAB)

El lenguaje de programacioacuten 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 matemaacutetico y programador de computadoras Cleve Moler en 1984 surgiendo la primera versioacuten con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de aacutelgebra lineal y anaacutelisis numeacuterico sin necesidad de escribir programas en dicho lenguaje MATLAB (abreviatura de MATrix LABoratory laboratorio de matrices) es una herramienta de software matemaacutetico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacioacuten propio (lenguaje M) Estaacute disponible para las plataformas Unix Windows Mac OS X y GNULinux

Entre sus prestaciones baacutesicas se hallan la manipulacioacuten de matrices la representacioacuten de datos y funciones la implementacioacuten de algoritmos la creacioacuten de interfaces de usuario (GUI) y la comunicacioacuten 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 simulacioacuten multidominio) y GUIDE (editor de interfaces de usuario - GUI) Ademaacutes 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 investigacioacuten y desarrollo

Sintaxis

MATLAB es un programa de caacutelculo numeacuterico disentildeado para trabajar con matrices Por tanto seraacute maacutes eficiente si se disentildean los algoritmos en teacuterminos de matrices y vectores

Ejemplos

Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt

Disentildeo de filtros digitales

En este ejemplo se disentildea un filtro digital paso bajo de Butterworth y se muestra el moacutedulo de su espectro ademaacutes incluimos otro ejemplo de un tren de deltas para el anaacutelisis espectral

close all Cierra todas las ventanasclear all Borra todas las variables del espacio de trabajoclc Limpia la pantalla Fc=200 Frecuencia de corteFm=1000 Frecuencia de muestreoBT=100 Banda de transicioacutenRs=40 Gananciasrs=10^(-Rs20)

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 28: 50 lenguajes de programación y sus características

Rp=2rp=(10^(Rp20)-1)(10^(Rp20)+1) [n1bwn1]=buttord(2FcFm2(Fc+BT)FmRpRs) Orden del filtro (funcioacuten buttord)[B1A1]=butter(n1bwn1) Coeficientes del filtro (funcioacuten butter)h1=freqz(B1A1) Respuesta en frecuencia (funcioacuten freqz)plot(abs(h1)) Representacioacuten de la respuesta

Lenguaje PLSQL

(Procedural LanguageStructured Query Language) Es Un lenguaje de propoacutesito general orientado a la inclusioacuten de sentencias SQLbull Estructura del coacutedigo PLSQL BloquesDECLAREltvariabletipogtBEGINsentencias PLSQLENDbull Los ficheros terminan con el caraacutecter bull Uso de SHOW ERRORS

PLSQL soportaraacute todas las consultas ya que la manipulacioacuten de datos que se usa es la misma que en SQL incluyendo nuevas caracteriacutesticas

El manejo de variables Estructuras modulares Estructuras de control de flujo y toma de decisiones Control de excepciones

El lenguaje PLSQL estaacute incorporado en

Servidor de la base de datos Herramientas de Oracle (Forms Reports )

BloquesCon PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque

Un bloque tiene 3 zonas

Zona de declaraciones donde se declaran objectos locales Suele ir precedida por la claacuteusula declare (o is o as en los procedimientos y funciones) Un conjunto de instrucciones precedido por la claacuteusula BEGIN Zona de excepciones es una zona opcional precedida por la claacuteusula EXCEPTION donde se gestionan las excepciones El formato geneacuterico de un bloque es el siguiente

[ DECLARE ltdeclaracionesgt]BEGIN

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 29: 50 lenguajes de programación y sus características

ltinstruccionesgt[EXCEPTION ltgestioacuten de excepcionesgt]END

Las uacutenicas claacuteusulas obligatorias son BEGIN y END Antes de hacer ninguacuten bloque tenemos que ejecutar el siguiente comando en nuestra ventana de Sql PLUS set serveroutput on

Tipo de dato Sintaxis Oracle 8i Oracle 9i Descripcioacuten

dec(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo dec(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

decimal(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo decimal(31) es un nuacutemero que tiene 2 diacutegitos antes del decimal y un diacutegito despueacutes del decimal

double precision

float La precisioacuten maacutexima es de 38 decimales

int

integer

numeric(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo numeric(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

number(p e) La precisioacuten maacutexima es de 38 diacutegitos

Donde p es la precisioacuten y e la escala

Por ejemplo number(72) es un nuacutemero que tiene 5 diacutegitos antes del decimal y 2 diacutegitos despueacutes del decimal

real

smallint

char (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho fijo Se rellena con espacios

varchar2 (tamantildeo)Hasta 32767 bytes en PLSQL

Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Son cadenas de ancho variable

long Hasta 2 gigabytes Son cadenas de ancho variable

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 30: 50 lenguajes de programación y sus características

rawHasta 32767 bytes en PLSQL

Hasta 2000 bytes en Oracle 8i9iSon cadenas binarias de ancho variable

long raw Hasta 2 gigabytes Son cadenas binarias de ancho variable

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

timestamp (fractional seconds precision)

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos

Por ejemplo timestamp(6)

timestamp (fractional seconds precision) with time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con un valor de desplazamiento de zona horaria

Por ejemplo timestamp(5) with time zone

timestamp (fractional seconds precision) with local time zone

No soportado por Oracle 8i

fractional seconds precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 6)

Incluye antildeo mes diacutea hora minutos y segundos con una zona horaria expresada como la zona horaria actual

Por ejemplo timestamp(4) with local time zone

interval year (year precision) to month

No soportado por Oracle 8i

year precision debe ser un nuacutemero entre 0 y 9 (El valor por defecto es 2)

Periacuteodo almacenado en antildeos y meses

Por ejemplo interval year(4) to month

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

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

Datos binarios de ancho fijo Cada registro de la base de datos tiene una direccioacuten fiacutesica o rowid

urowid [tamantildeo] Hasta 2000 bytes Rowid universal Donde tamantildeo es opcional

boolean Vaacutelido en PLSQL este tipo de datos no existe en Oracle 8i9i

nchar (tamantildeo) Hasta 32767 bytes en PLSQL Hasta 2000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho fijo

nvarchar2 (tamantildeo)

Hasta 32767 bytes en PLSQL Hasta 4000 bytes en Oracle 8i9i

Donde tamantildeo es el nuacutemero de caracteres a almacenar Cadena NLS de ancho variable

bfile Hasta 4 gigabytesLocalizadores de archivo apuntan a un objeto binario de solo lectura fuera de la base de datos

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 31: 50 lenguajes de programación y sus características

blob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto binario dentro de la base de datos

clob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto de caracteres dentro de la base de datos

nclob Hasta 4 gigabytesLocalizadores LOB apuntan a un gran objeto NLS de caracteres dentro de la base de datos

Lenguaje SAS

SAS es un lenguaje de programacioacuten desarrollado por SAS Institute a finales de los antildeos sesenta Existen dos inteacuterpretes de dicho lenguaje uno desarrollado por SAS Institute y otro por la empresa World Programming Aparecioacute en 1971 Disentildeado por SAS Institute Implementaciones SAS Institute World ProgrammingInfluido por PLI Posee una sintaxis inspirada en la de PLI lenguaje en el que se implementoacute el primer inteacuterprete

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

Pasos data que permiten realizar operaciones sobre las filas de un conjunto de datos Procedimientos de manipulacioacuten de datos que permiten ordenar tablas enlazarlas etc Un inteacuterprete de SQL Un superlenguaje de macros

Algunas de las caracteriacutesticas adicionales del lenguaje de programacioacuten SAS son las siguientes

Las palabras clave no estaacuten 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 semaacutentico

El lenguaje se considera ambiguo esto implica que la interpretacioacuten de las instrucciones depende de instrucciones previas

El lenguaje no se puede describir a traveacutes de una gramaacutetica de contexto libre Gramaacutetica de contexto libre El anaacutelisis leacutexico del lenguaje depende del contexto Analizador leacutexico

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 gt 100000 RUN

Otro ejemplo usando macros

macro brol(max) do i=1 to max PROC IMPORT OUT= WORKorigine DATAFILE= Utemporiginexls DBMS=EXCEL REPLACE SHEET=venteampi GETNAMES=YES

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 32: 50 lenguajes de programación y sus características

MIXED=YES SCANTEXT=YES USEDATE=YES SCANTIME=YES RUN end mend brol(4)

Lenguaje Logo

Logo es un lenguaje de programacioacuten de alto nivel en parte funcional en parte estructurado de muy faacutecil aprendizaje razoacuten por la cual suele ser el lenguaje de programacioacuten preferido para trabajar con nintildeos y joacutevenes Fue disentildeado con fines didaacutecticos por Danny Bobrow Wally Feurzeig y Seymour Papert los cuales se basaron en las caracteriacutesticas del lenguaje Lisp Es un lenguaje de programacioacuten es un lenguaje de computadora completo derivado de LISP (el lenguaje maacutes prominente para el tratamiento de temas de inteligencia artificial) Sin embargo y maacutes importante Logo es un lenguaje para aprender Es una herramienta uacutetil para ensentildear 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 ensentildeado planear un meacutetodo para impartir este conocimiento dividir el conocimiento en trozos pequentildeos y entendibles saber coacutemo 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 asiacute

experimentando con los comandos de Logo para entenderlos y alcanzar confianza es su uso planeando su trabajo y organizaacutendolo sus varios componentes escribiendo un conjunto de instrucciones para realizar cada pequentildea tarea construyendo un programa para realizar todas las tareas en el orden correcto evaluando su programa al localizar y corregir errores o reestructurando el meacutetodo utilizado

Logo no estaacute limitado a un toacutepico en particular o a una materia especiacutefica Sin embargo es maacutes comuacutenmente utilizado para la exploracioacuten de las Matemaacuteticas ya que los graacuteficos de tortuga de Logo proveen una ambiente naturalmente matemaacutetico Debido a que la tortuga se mueve una determinada distancia y gira un nuacutemero dado de grados el estudio de geometriacutea mediante la construccioacuten e investigacioacuten de poliacutegonos y figuras hace de Logo una herramienta de aprendizaje poderosa

La caracteriacutestica maacutes conocida de Logo es la tortuga un cursor graacutefico usado para crear dibujos Auacuten los nintildeos pequentildeos raacutepidamente aprenden a mover y girar la tortuga usando comandos intuitivos y faacuteciles 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 combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 33: 50 lenguajes de programación y sus características

giraderecha 90 la tortuga gira (en el sentido de las agujas del reloj) 90 grados Mediante la combinacioacuten de estos comandos es faacutecil dibujar un cuadrado

Avanza 50 (Tambieacuten se puede abreviar avanza como av )giraderecha 90 (Se puede abreviar giraderecha como gd )avanza 50giraderecha 90avanza 50giraderecha 90avanza 50giraderecha 90

Cuando varios comandos forman un patroacuten estos pueden sen combinados usando repite Aquiacute estaacute el mismo cuadrado dibujado usando una sola liacutenea de instrucciones

repite 4 [avanza 50 giraderecha 90]

Lenguaje LISP

El LISP es un lenguaje de programacioacuten creado por el profesor John McCarthy a finales de los antildeos 50 John McCarthy quiso desarrollar un lenguaje que mostrara la informacioacuten estructurada en listas en las que se pudieran gestionar esta De ahiacute 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 maacutes importantes podemos citar a el MACLISP COMMONLISP INTERLISP ZETALISP etc De todos ellos el COMMONLISP se estaacute consolidando como el estaacutendar

El Lisp es un lenguaje funcional que se apoya en la utilizacioacuten de funciones matemaacuteticas para el control de los datos Pero el elemento fundamental en el Lisp es la lista Y desde el punto de vista maacutes amplio del teacutermino Cada funcioacuten del lisp y cada programa que generemos con eacutel vienen dado en forma de lista Por esta razoacuten los datos no se pueden diferenciarse sintaacutecticamente de los programas El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva de forma que la mayoriacutea de las funciones nos devuelven una lista que es el resultado de alguna transformacioacuten de otra que recibioacute pero sin cambiar a esta (la que recibioacute)

Una de las razones por las que el Lisp estaacute especialmente dotado para la programacioacuten en inteligencia artificial (IA) es precisamente porque su coacutedigo 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 entendioacute el papel central de un lenguaje de programacioacuten para su objetivo cientiacutefico - la inteligencia artificial

Listas

El elemento fundamental en Lisp es la lista en el sentido maacutes amplio del teacutermino pues tanto los datos como los programas son listas De ahiacute viene su nombre pues Lisp es un acroacutenimo de LIStProcessing Las listas en LISP estaacuten delimitadas por pareacutentesis De aquiacute viene el chiste del significado de LISP LostInStupidParenthesesrdquo

Ejemplos

Hola mundo(format t iexclHola mundo)

Trabajando con listas

Definicioacuten de la funcioacuten

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 34: 50 lenguajes de programación y sus características

(defun vacia (l) (cond ((null l) 1) si la lista esta vacia devuelve 1 (t 0))) en otro caso (lista llena) devuelve 0

Llamada a la funcioacuten

(vacia (1 3 4)) La lista no esta vacia devolveriacutea 0 (vacia ()) La lista esta vacia devolveriacutea 1

30Lenguaje RPG

RPG es un lenguaje de programacioacuten propio de IBM que estaacute orientado al desarrollo de aplicaciones empresariales esteacute lenguaje es muy usado en las plataformas de servidores IBM

RPG no estaacuten popular coacutemo el resto de los leguajes iquestPor queacute debido a su aplicacioacuten y la plataforma doacutende esteacute lenguaje debe ser usado Es decir es uacutenico para plataformas IBM AS400 (En un Mainframe propio de IBM de familia Power Systems usado en grandes empresas) Investigando se supo que la apariencia de esteacute lenguaje RPG es coacutemo assembler doacutende la estructura se basa en posiciones columnas y similar a Fox por la direccioacuten de bases de datos

El compilador de RPG se llama ILE RPG tambieacuten es un meacutetodo reciente de programacioacuten en el sistema iSeries Es el resultado de las mejoras importantes en las arquitecturas del iSeries y en el sistema operativo OS400 La familia de compiladores ILE incluye ILE RPG ILE C ILE COBOL ILE CL y VisualAge for C++

ILE proporciona una base comuacuten para

Gestionar el flujo de programas Compartir los recursos Utilizar interfaces de programacioacuten de aplicaciones (API) Manejar excepciones durante el tiempo de ejecucioacuten de un programa

Y bueno chicos por ahiacute vi comentarios doacutende mencionaban que la paga por trabajar con RPG es muy buena econoacutemicamente hablando

En 1960 RPG es creado para la familia 1400 pero hasta 1964 no es lanzada la versioacuten final para la IBM 360 Ha sido actualizado en diversas ocasiones dando origen a las diferentes versiones del lenguaje Una de las uacuteltimas actualizaciones que se ha realizado hasta la fecha es el RPGIV en 1995 disponible con los ordenadores IBM de la familia AS400 Posteriormente en 2001 y con la aparicioacuten de la versioacuten 5 del OS400 surgioacute una nueva modificacioacuten sobre el lenguaje soportaacutendose a partir de ese momento la programacioacuten en formato libre Asiacute mismo se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y coacutedigos de operacioacuten Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho maacutes legible claro flexible y moderno

Entre sus principales caracteriacutesticas podemos destacar las siguientes

1 Orientado a la produccioacuten de informes2 Realiza caacutelculos faacutecilmente

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 35: 50 lenguajes de programación y sus características

3 Emplea hojas de codificacioacuten diferentes para la descripcioacuten de ficheros entrada de datos salida de resultados etc

Lenguaje Delphi

El Delphi es un lenguaje de programacioacuten que se creoacute con el propoacutesito de agilizar la creacioacuten de software basaacutendolo en una programacioacuten visual En el Delphi se utiliza una versioacuten maacutes actual del Pascal conocida como Object Pascal como lenguaje de programacioacuten El Delphi es un lenguaje muy versaacutetil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo establecer comunicacioacuten 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 coacutedigo maacutequina por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programacioacuten

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 caracteriacutesticas de los ya existentes

Tambieacuten podemos utilizar en el Delphi componentes visuales de otros lenguajes de programacioacuten

Delphi utiliza el Object Pascal como ya hemos dicho que es un lenguaje de programacioacuten orientado a objetos lo que nos permite beneficiarnos de caracteriacutesticas importantes en programacioacuten como son el encapsulamiento polimorfismo y la herencia

Un uso habitual de Delphi aunque no el uacutenico es el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas Debido a que es una herramienta de propoacutesito muacuteltiple se usa tambieacuten para proyectos de casi cualquier tipo incluyendo aplicaciones de consola aplicaciones de web (por ejemplo servicios web CGI ISAPI NSAPI moacutedulos para Apache) servicios COM y DCOM y servicios del sistema operativo Entre las aplicaciones maacutes populares actualmente destaca Skype un programa de telefoniacutea por IP

Delphi inicialmente soacutelo produciacutea ejecutables binarios para Windows Delphi 1 para Win16 y con Delphi 2 se introdujo Win32

Bases de Datos

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 36: 50 lenguajes de programación y sus características

Una de las principales caracteriacutesticas 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 conexioacuten manipulacioacuten presentacioacuten y captura de los datos algunos

de ellos liberados bajo licencias de coacutedigo abierto o gratuito

Eventos de Ejecucioacuten

Delphi permite de manera sencilla ejecutar trozos de coacutedigo en respuesta a acciones o eventos (sucesos)

que ocurren durante el tiempo que un programa se ejecuta Por ejemplo cuando se presiona un botoacuten la VCL

captura la notificacioacuten estaacutendar de Windows y detecta si hay alguacuten meacutetodo asociado al evento OnClick del botoacuten

Lenguaje D

Aparecioacute en2011 Disentildeado porWalter Bright Andrei Alexandrescu (desde 2006) Uacuteltima versioacuten estable2064 10752 3 (2 de agosto de 2012 hace 3 antildeos4 ) Tipo de datoFuerte Estaacutetico ImplementacionesDMD GDC LDC Influido porC++ C C Java Eiffel Python Ruby Ha influido aMiniD DScript Vala Qore Swift5 Sistema operativoDMD Unix-like (FreeBSD Linux etc) Windows OS

D es un lenguaje de programacioacuten de uso general desarrollado por Walter Bright cuya primera versioacuten aparecioacute en 1999 Se origina como un redisentildeo de C++ con un enfoque maacutes pragmaacutetico pero no es un lenguaje puramente derivado del anterior D ha mantenido algunas caracteriacutesticas de C++ y tambieacuten estaacute influido por otros conceptos de otros lenguajes como Java C y Eiffel Una versioacuten estable fue lanzada el 2 de enero de 2007

D estaacute siendo disentildeado con lecciones aprendidas del uso de C++ en vez de ser disentildeado desde una perspectiva teoacuterica Aunque usa muchos de los conceptos de CC++ tambieacuten descarta algunos y por lo tanto no es compatible con coacutedigo escrito en C o C++ D retiene la habilidad de C++ de hacer coacutedigo de bajo nivel permitiendo incluir coacutedigo en ensamblador La herencia muacuteltiple de C++ es reemplazada por herencia simple e interfaces y mixins La sintaxis de declaracioacuten 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 coacutedigo especiacutefico de la maacutequina con coacutedigo D una teacutecnica comuacutenmente usada por programadores de software de sistema para acceder a caracteriacutesticas de bajo nivel necesarias para interactuar directamente con el hardware permitiendo escribir software como sistemas operativos y drivers

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 37: 50 lenguajes de programación y sus características

D incluye soporte para comentarios de documentacioacuten pero hasta ahora soacutelo el compilador entregado por Digital Mars implementa un generador de documentacioacuten

Orientada a objetos

La programacioacuten orientada a objetos estaacute basada en herencia simple con todas las clases derivadas de la clase Object D no soporta herencia muacuteltiple en vez de eso usa interfaces parecidas a las de Java que son comparables a las clases abstractas de C++

Metaprogramacioacuten

Metaprogramacioacuten es soportada por una combinacioacuten de plantillas ejecucioacuten de funciones en tiempo de compilacioacuten tuplas y mixins de cadena Soporta CTFE (evaluacioacuten de funciones en tiempo de compilacioacuten)

Lenguaje Pascal

Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Pascal se caracteriza por ser un lenguaje de programacioacuten estructurado fuertemente tipificado Esto implica que

1 El coacutedigo estaacute dividido en porciones faacutecilmente legibles llamadas funciones o procedimientos De esta forma Pascal facilita la utilizacioacuten de la programacioacuten estructurada en oposicioacuten al antiguo estilo de programacioacuten monoliacutetica

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 matemaacutetico Blaise Pascal

El lenguaje de programacioacuten en Pascal es un lenguaje de alto nivel y de propoacutesito general lo cual quiere decir que se puede utilizar para cualquier tipo de propoacutesitos El lenguaje de programacioacuten en Pascal se considera un lenguaje estructurado sencillo y praacutectico para todos aquellos usuarios que se inician en el mundo de la programacioacuten 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 caracteriacutesticas es utilizado en las universidades e institutos de educacioacuten para inicializar a los futuros ingenieros en sistemas o informaacutetica

El lenguaje de programacioacuten Pascal es idoacuteneo en el estudio y definicioacuten de las estructuras de datos su faacutecil definicioacuten lo hace manejable para un programador novato Con la programacioacuten en Pascal se pueden realizar desde programas formales rutinas utilitarios hasta cualquier clase de video juegos

Programacioacuten en Pascal es un lenguaje de sintaxis sencilla muy estructurado y que comprueba exhaustivamente todo tipo de datos El mejor de los propoacutesitos de programacioacuten en Pascal es que ensentildea buenas formas de programacioacuten con lo cual se utiliza mucho en la ensentildeanza por todos los motivos nominados anteriormente por su sencillez su estructuracioacuten y su facilidad de lectura y entendimiento Existen varios dialectos locales de programacioacuten en Pascal entre ellas el Turbo Pascal el cual acepta instrucciones de Pascal

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 38: 50 lenguajes de programación y sus características

IMPLEMENTACIONES

Las primeras versiones del compilador de Pascal entre ellas la maacutes distribuida fue UCSD Pascal traduciacutean el lenguaje en coacutedigo para una maacutequina virtual llamada maacutequina-P La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de maacutequina solo haciacutea falta re implementar la maacutequina-P Como consecuencia de esto solo una pequentildea parte del inteacuterprete teniacutea que ser reescrita hacia muchas arquitecturas

En los antildeos 1980 Anders Hejlsberg escribioacute el compilador Blue Label Pascal para la Nascom-2 Maacutes tarde fue a trabajar para Borland y reescribioacute su compilador que se convirtioacute en Turbo Pascal para la IBM PC Este nuevo compilador se vendioacute por $49 un precio orientado a la distribucioacuten masiva El econoacutemico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzoacute 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 soacutelo estaba disponible para una arquitectura traduciacutea directamente hacia el coacutedigo maacutequina del Intel 8088 logrando construir programas que se ejecutaban mucho maacutes raacutepidamente que los producidos en los esquemas interpretados

Lenguaje Perl

Perl es un lenguaje de programacioacuten disentildeado por Larry Wall en 1987 Perl toma caracteriacutesticas del lenguaje C del lenguaje interpretado bourne shell (sh) AWK sed Lisp y en un grado inferior de muchos otros lenguajes de programacioacuten Es un lenguaje de programacioacuten muy utilizado para construir aplicaciones CGI para el web Perl es un acroacutenimo de Practical Extracting and Reporting Languaje que viene a indicar que se trata de un lenguaje de programacioacuten muy praacutectico para extraer informacioacuten 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 Uniacutex pero en la actualidad estaacute disponible en otros sistemas operativos como Windows

Perl es un lenguaje de programacioacuten interpretado al igual que muchos otros lenguajes de Internet como Javascript o ASP Esto quiere decir que el coacutedigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el coacutedigo y se pone en marcha interpretando lo que hay escrito Ademaacutes es extensible a partir de otros lenguajes ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes Tambieacuten desde otros lenguajes podremos ejecutar coacutedigo Perl

Perl estaacute inspirado a partir de lenguajes como C sh awk y sed (algunos provenientes de los sistemas Uniacutex) pero estaacute enfocado a ser maacutes praacutectico y faacutecil que estos uacuteltimos Es por ello que un programador que haya trabajado con el lenguaje C y los otros tendraacute menos problemas en entenderlo y utilizarlo raacutepidamente Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamantildeo de los datos con los que trabaja el liacutemite lo pone la memoria que en ese momento se encuentre disponible Si queremos trabajar con Perl seraacute necesario tener instalado el inteacuterprete 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 Ademaacutes los archivos con el coacutedigo tambieacuten deberaacuten tener permiso de ejecucioacuten

Tipos de datos

Perl tiene tres tipos de datos escalares listas y hashes

Un escalar es un solo valor puede ser un nuacutemero un string (cadena de caracteres) o una referencia Una lista es una coleccioacuten 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 estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 39: 50 lenguajes de programación y sus características

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

Todas las variables estaacuten 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 escalarvar un arrayvar un hash

Los nuacutemeros se escriben de la forma usual los strings estaacuten rodeados entre comillas de varias clases

$n = 42$nombre = juan$color = rojo

Lenguaje Ruby

Ruby Es un lenguaje de programacioacuten interpretado reflexivo y orientado a objetos creado por el programador japoneacutes Yukihiro Matz Matsumoto quien comenzoacute a trabajar en Ruby en 1993 y lo presentoacute puacuteblicamente en 1995 Combina una sintaxis inspirada en Python y Perl con caracteriacutesticas de programacioacuten orientada a objetos similares a Smalltalk Comparte tambieacuten funcionalidad con otros lenguajes de programacioacuten como Lisp Lua Dylan y CLU Ruby es un lenguaje de programacioacuten interpretado en una sola pasada y su implementacioacuten oficial es distribuida bajo una licencia de software libre

OBJETIVO El creador del lenguaje ha dicho que Ruby estaacute disentildeado para la productividad y la diversioacuten del desarrollador siguiendo los principios de una buena interfaz de usuario Sostiene que el disentildeo de sistemas necesita enfatizar las necesidades humanas maacutes que las de la maacutequina Ruby sigue el principio de la menor sorpresa lo que significa que el lenguaje debe comportarse de tal manera que minimice la confusioacuten de los usuarios experimentados

SEMAacuteNTICA

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 etceacutetera) Este lenguaje soporta herencia con enlace dinaacutemico mixins y meacutetodos singleton (pertenecientes y definidos por una sola instancia maacutes que definidos por la clase) A pesar que Ruby no soporta herencia muacuteltiple las clases pueden importar moacutedulos como mixins Ruby ha sido descrito como un lenguaje de programacioacuten multiparadigma permite programacioacuten procedural con orientada a objetos o funcionalmente Ademaacutes de soporte para hilos de ejecucioacuten gestionados por el inteacuterprete Este lenguaje tiene tipado dinaacutemico 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

CARACTERIacuteSTICAS

Orientada a objetos Cuatro niveles de aacutembito de variable global clase instancia y local Manejo de excepciones Altamente por table

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 40: 50 lenguajes de programación y sus características

Amplia libreriacutea estaacutendar Soporta alteracioacuten de objetos en tiempo de ejecucioacuten

SINTAXIS

La sintaxis de Ruby es similar a la de Perl y Python La definicioacuten de clases y meacutetodos estaacute definida por palabras claves Sin embargo en Perl las variables no llevan prefijos Cuando se usa un prefijo indica el aacutembito de las variables La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de coacutedigo sin llaves Los saltos de liacutenea 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 indentacioacuten 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 simulacioacuten de ambientes complejos

Promueve las mejores praacutecticas de programacioacuten sin perder usabilidad Mediante su uso se pueden complementar las caracteriacutesticas de la loacutegica imperativa con la loacutegica

funcional

Permite utilizar la maacutes simple expresioacuten para un programa o algoritmo esto sumado a las actuales praacutecticas aacutegiles permite desarrollar en forma amigable

Lenguaje Transact-SQL

Transact-SQL tambieacuten es conocido por sus abreviatura como T-SQL como definicioacuten es una extensioacuten del SQL Microsoft junto son Sybase Lo que conocemos a SQL como el lenguaje de buacutesqueda estructurado lo que viene hacer T-SQL es expander los estaacutendares de SQL no incluyendo programacioacuten procedural como algunas otras funciones para matemaacuteticas 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 creacioacuten de los procedimientos almacenados funciones de usuario y tambieacuten en los triggers Podemos hacer uso de T-SQL en lenguajes de programacioacuten como puede ser Visual Basic NET C Java Tambieacuten 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 caracteriacutesticas propias de cualquier lenguaje de programacioacuten caracteriacutesticas que nos permiten definir la loacutegica necesaria para el tratamiento de la informacioacuten

bull Tipos de datos bull Definicioacuten de variables bull Estructuras de control de flujo bull Gestioacuten de excepciones bull Funciones predefinidas

Sin embargo tambieacuten nos permite

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 41: 50 lenguajes de programación y sus características

bull Crear interfaces de usuario bull Crear aplicaciones ejecutables sino elementos que en alguacuten momento llegaraacuten al servidor de datos y seraacuten 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 programacioacuten como Visual Basic C Java etc Y por supuesto los lenguajes incluidos en la plataforma NET

Tambieacuten lo podremos ejecutar directamente de manera interactiva por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio)

Lenguaje JavaScript

JavaScript (abreviado comuacutenmente JS) es un lenguaje de programacioacuten interpretado dialecto del estaacutendar ECMAScript Se define como orientado a objetos[3] basado en prototipos imperativo deacutebilmente tipado y dinaacutemico

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 coincidioacute aproximadamente con el momento en que Netscape agregoacute compatibilidad con la tecnologiacutea Java en su navegador web Netscape Navigator en la versioacuten 2002 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 paacuteginas web dinaacutemicas[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 tambieacuten significativo JavaScript se disentildeoacute con una sintaxis similar al C aunque adopta nombres y convenciones del lenguaje de programacioacuten Java Sin embargo Java y JavaScript no estaacuten relacionados y tienen semaacutenticas y propoacutesitos diferentes

Todos los navegadores modernos interpretan el coacutedigo JavaScript integrado en las paacuteginas web Para interactuar con una paacutegina web se provee al lenguaje JavaScript de una implementacioacuten del Document Object Model (DOM) Tradicionalmente se veniacutea utilizando en paacuteginas web HTML para realizar operaciones y uacutenicamente en el marco de la aplicacioacuten cliente sin acceso a funciones del servidor Actualmente es ampliamente utilizado para enviar y recibir informacioacuten del servidor junto con ayuda de otras tecnologiacuteas como AJAX JavaScript se interpreta en el agente de usuario al mismo tiempo que las sentencias van descargaacutendose junto con el coacutedigo HTML Desde el lanzamiento en junio de 1997 del estaacutendar ECMAScript 1 han existido las versiones 2 3 y 5 que es la maacutes usada actualmente (la 4 se abandonoacute [5] ) En junio de 2015 se cerroacute y publicoacute la versioacuten ECMAScript 6

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 42: 50 lenguajes de programación y sus características

Sintaxis y semaacutenticaA partir del 2011 la uacuteltima versioacuten del lenguaje es JavaScript 185 Es un superconjunto de la especificacioacuten ECMAScript (ECMA-262) Edicioacuten 3 Extensiones del lenguaje que incluyen compatibilidad parcial con ECMAScript para XML (E4X) (ECMA-357) y caracteriacutesticas experimentales consideradas para ser incluidas en futuras ediciones del ECMAScript documentadas aquiacute[]

Ejemplos sencillosLas variables en JavaScript se definen usando la palabra clave var[35]

var x define la variable x aunque no tiene ninguacuten valor asignado por defectovar y = 2 define la variable y y le asigna el valor 2 a ella

A considerar los comentarios en el ejemplo de arriba los cuales van precedidos con 2 barras diagonalesNo existen funcionalidades para IO incluidas en el lenguaje el entorno de ejecucioacuten ya lo proporciona La especificacioacuten ECMAScript en su edicioacuten 51 hace mencioacuten en efecto no existen provisiones en esta especificacioacuten para entrada de datos externos o salida para resultados computados Sin embargo la mayoriacutea de los entornos de ejecucioacuten tiene un objeto [37] llamado console que puede ser usado para imprimir por el flujo de salida de la consola de depuracioacuten He aquiacute un simple programa que imprime

ldquoHello worldrdquoconsolelog(Hello world)

Lenguaje Phayton

Python es un lenguaje de programacioacuten interpretado cuya filosofiacutea hace hincapieacute en una sintaxis que favorezca un coacutedigo legible

Se trata de un lenguaje de programacioacuten multiparadigma ya que soporta orientacioacuten a objetos programacioacuten imperativa y en menor medida programacioacuten funcional Es un lenguaje interpretado usa tipado dinaacutemico y es multiplataforma Es administrado por la Python Software Foundation Posee una licencia de coacutedigo abierto denominada Python Software Foundation License[1] que es compatible con la Licencia puacuteblica general de GNU a partir de la versioacuten 211 e incompatible en ciertas versiones anteriores

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemaacuteticas y la Informaacutetica (CWI Centrum Wiskunde amp Informatica) en los Paiacuteses Bajos como un sucesor del lenguaje de programacioacuten ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba El nombre del lenguaje proviene de la aficioacuten de su creador por los humoristas britaacutenicos Monty Python[4] Van Rossum es el principal autor de Python y su continuo rol central en decidir la direccioacuten de Python es reconocido refirieacutendose a eacutel como Benevolente Dictador Vitalicio (en ingleacutes Benevolent Dictator for Life BDFL)

En 1991 van Rossum publicoacute el coacutedigo de la versioacuten 090 en altsources

Python es un lenguaje de programacioacuten multiparadigma Esto significa que maacutes que forzar a los programadores a adoptar un estilo particular de programacioacuten permite varios estilos programacioacuten orientada a objetos programacioacuten imperativa y programacioacuten funcional Otros paradigmas estaacuten soportados mediante el uso de extensiones Python usa tipado dinaacutemico y conteo de referencias para la administracioacuten de memoria Una

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 43: 50 lenguajes de programación y sus características

caracteriacutestica importante de Python es la resolucioacuten dinaacutemica de nombres es decir lo que enlaza un meacutetodo y un nombre de variable durante la ejecucioacuten del programa (tambieacuten llamado enlace dinaacutemico de meacutetodos)

Elementos del lenguaje

Python fue disentildeado para ser leiacutedo con facilidad Una de sus caracteriacutesticas es el uso de palabras donde otros lenguajes utilizariacutean siacutembolos Por ejemplo los operadores loacutegicos || y ampamp en Python se escriben not or y and respectivamente

El contenido de los bloques de coacutedigo (bucles funciones clases etc) es delimitado mediante espacios o tabuladores conocidos como indentacioacuten antes de cada liacutenea de oacuterdenes pertenecientes al bloque[18] Python se diferencia asiacute de otros lenguajes de programacioacuten 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 coacutedigo pero se recomienda no mezclarlos[21]

Funcioacuten factorial en C (indentacioacuten opcional)Funcioacuten factorial en Python (indentacioacuten obligatoria)

factorial(int x)

if (x == 0) return 1 else return x factorial(x - 1)

factorial(x) if x == 0 return 1 else return x factorial(x - 1)

Lenguaje Visual Basic

Visual Basic es uno de los tantos lenguajes de programacioacuten que podemos encontrar hoy en diacutea Dicho lenguaje nace del BASIC (Beginneracutes All-purpose Symbolic Instruction Code) que fue creado en su versioacuten original en el Dartmouth College con el propoacutesito de servir a aquellas personas que estaban interesadas en iniciarse en alguacuten lenguaje de programacioacuten Luego de sufrir varias modificaciones en el antildeo 1978 se establecioacute el BASIC estaacutendar La sencillez del lenguaje ganoacute el desprecio de los programadores avanzados por considerarlo un lenguaje para principiantes

Primero fue GW-BASIC luego se transformoacute en QuickBASIC y actualmente se lo conoce como Visual Basic y la versioacuten maacutes reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft Esta versioacuten combina la sencillez del BASIC con un poderoso lenguaje de programacioacuten Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows Esta fusioacuten de sencillez y la esteacutetica permitioacute ampliar mucho maacutes el monopolio de Microsoft ya que el lenguaje soacutelo es compatible con Windows un sistema operativo de la misma empresa

Visual Basic ya no es maacutes un lenguaje para principiantes sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows

iquestQueacute es Visual Basic

Disentildeador de entorno de datos Es posible generar de manera automaacutetica conectividad entre controles y datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 44: 50 lenguajes de programación y sus características

Los Objetos Actives son una nueva tecnologiacutea de acceso a datos mediante la accioacuten de arrastrar y colocar sobre formularios o informes

Caracteriacutesticas de Visual Basic

Barra de tiacutetulo muestra el nombre del proyecto y del formulario q se estaacute disentildeando actualmente

Barra de menuacutes agrupa los menuacutes despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 60

Barra de herramientas estaacutendar contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto Simplifica la eleccioacuten de opciones de los menuacutes Archivo Edicioacuten Ver y Ejecutar ademaacutes en el aacuterea derecha presenta la ubicacioacuten (coordenadas) y el tamantildeo del objeto seleccionado

Ventana de formulario es el aacuterea donde se disentildea la interfaz graacutefica es decir es donde se inserta electo graacuteficos como botones imaacutegenes casilla de verificacioacuten cuadros de listas etc

Cuadro de herramientas presenta todos los controles necesarios para disentildear una aplicacioacuten como cuadros de texto etiquetas cuadros de listas botones de comandos etc

Ventana de proyecto muestra los elementos involucrados en el proyecto como formularios moacutedulos controles oxc etc Cada elemento puede seleccionarse en forma independiente para su edicioacuten

Ventana de posicioacuten del formulario muestra la ubicacioacuten que tendraacute el formulario en la pantalla cuando ejecute la aplicacioacuten Esta ubicacioacuten puede cambiarse si se hace clic con el botoacuten 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 estaacute 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 coacutedigo abierto muy popular adecuado para desarrollo web y que puede ser incrustado en HTML Es popular porque un gran nuacutemero de paacuteginas y portales web estaacuten creadas con PHP Coacutedigo 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 coacutedigo PHP con coacutedigo HTML siguiendo unas reglasPHP se utiliza para generar paacuteginas web dinaacutemicas Recordar que llamamos paacutegina estaacutetica a aquella cuyos contenidos permanecen siempre igual mientras que llamamos paacuteginas dinaacutemicas 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 buacutesquedas o aportaciones de los usuarios etc iquestCoacutemo trabaja PHP El lenguaje PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial Cuando se escribe una direccioacuten tipo httpwwwaprenderaprogramarcomindexphp en un navegador web como Internet Explorer Firefox o Chrome iquestqueacute ocurre Se enviacutean los datos de la solicitud al servidor que los procesa reuacutene los datos (por eso decimos que es un proceso dinaacutemico) y el servidor lo que devuelve es una paacutegina HTML como si fuera estaacuteticaEl esquema es Peticioacuten de paacutegina web al servidor --gt El servidor recibe la peticioacuten reuacutene la informacioacuten necesaria consultando a bases de datos o a otras paacuteginas webs otros servidores etc --gt El servidor responde enviando una paacutegina web ldquonormalrdquo (estaacutetica) pero cuya creacioacuten ha sido dinaacutemica (realizando procesos de modo que la paacutegina web devuelta no siempre es igual)

En resumen

Paacuteginas estaacuteticas Peticioacuten --gt Respuesta

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 45: 50 lenguajes de programación y sus características

Paacuteginas dinaacutemicas Peticioacuten --gt Procesado y preparacioacuten --gt Respuesta

En un sitio dinaacutemico la informacioacuten generalmente estaacute contenida en una base de datos Cada vez que mostramos la paacutegina como por ejemplo una paacutegina de noticas buscamos en la base de datos las uacuteltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante Ahora bien iquestcoacutemo se consigue que la paacutegina vaya mostrando noticias nuevas Simplemente cargando las mismas en la base de datos por ejemplo a traveacutes de un formulario que rellena una persona y que una vez relleno cuando pulsa ldquoEnviarrdquo implica que lo que haya escrito se guarde en nuestra base de datos De esta manera cuando solicitamos la paacutegina web y el servidor consulte la base de datos encontraraacute esta nueva informacioacuten y mostraraacute nuestra paacutegina de forma distinta a como se veiacutea anteriormentePor regla general este tipo de lenguaje suele ser utilizado para crear contenido dinaacutemico y poder interactuar con el usuarioVeamos un ejemplo del contenido de una paacutegina web php que habremos de almacenar en un archivo que termina con la extensioacuten php y que contiene texto

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgt

ltheadgtlttitlegtEjemplolttitlegt

ltheadgtltbodygt

ltphpecho Bienvenidos a aprenderaprogramarcom

gtltbodygt

lthtmlgt

Lenguaje C

El lenguaje de programacioacuten C fue creado por el daneacutes Anders Hejlsberg que disentildeo tambieacuten los lenguajes Turbo Pascal y Delphi El C (pronunciado en ingleacutes ldquoC sharprdquo o en espantildeol ldquoC sostenidordquo) es un lenguaje de programacioacuten orientado a objetos Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C y el C++ Con el C se pretendioacute que incorporase las ventajas o mejoras que tiene el lenguaje JAVA Asiacute se consiguioacute que tuviese las ventajas del C del C++ pero ademaacutes la productividad que posee el lenguaje JAVA y se le denomino C Algunas de las caracteriacutesticas del lenguaje de programacioacuten C son Su coacutedigo se puede tratar iacutentegramente como un objeto Su sintaxis es muy similar a la del JAVA Es un lenguaje orientado a objetos y a componentes Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++ Ahorramos tiempo en la programacioacuten ya que tiene una libreriacutea de clases muy completa y bien disentildeada A pesar que el lenguaje C forma parte de a plataforma NET que es una interfaz de programacioacuten de aplicaciones C es un lenguaje independiente que originariamente se creo para producir programas sobre esta plataforma NET Durante el desarrollo de la plataforma NET las bibliotecas de clases fueron escritas originalmente usando un sistema de coacutedigo gestionado llamado Simple Managed C (SMC) En enero de 1999 Anders Hejlsberg formoacute un equipo con la misioacuten de desarrollar un nuevo lenguaje de programacioacuten llamado Cool (Lenguaje C orientado a

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 46: 50 lenguajes de programación y sus características

objetos) Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C [3] La biblioteca de clases de la plataforma NET fue migrada entonces al nuevo lenguaje

Hejlsberg lideroacute el proyecto de desarrollo de C Anteriormente ya habiacutea participado en el desarrollo de otros lenguajes como Turbo Pascal Delphi y J++

Tipos de datosC contiene veinte categoriacuteas generales de tipos de datos integrados tipos de valor y tipos de referencia El teacutermino tipo de valor indica que esos tipos contienen directamente sus valores

Tipo de datos de enteros

Tipo Equivalente BCL

Tamantildeo Rango Significado

byte SystemByte8-bit (1-byte)

0 a 255 Entero sin signo

sbyte SystemSByte8-bit (1-byte)

-128 a 127 Entero con signo

short SystemInt1616-bit (2-byte)

-32768 a 32767 Entero corto con signo

ushort SystemUInt1616-bit (2-byte)

0 a 65535 Entero corto sin signo

int SystemInt3232-bit (4-byte)

-2147483648 a 2147483647 Entero medio con signo

uint SystemUInt3232-bit (4-byte)

0 a 4294967295 Entero medio sin signo

long SystemInt6464-bit (8-byte)

-9223372036854775808 a 9223372036854775807

Entero largo con signo

ulong SystemUInt6464-bit (8-byte)

0 a 18446744073709551615 Entero largo sin signo

Lenguaje C++

C++ es un lenguaje imperativo orientado a objetos derivado del C En realidad un superconjunto de C que nacioacute para antildeadirle cualidades y caracteriacutesticas de las que careciacutea El resultado es que como su ancestro sigue muy ligado al hardware subyacente manteniendo una considerable potencia para programacioacuten a bajo nivel pero se la han antildeadido elementos que le permiten tambieacuten un estilo de programacioacuten con alto nivel de abstraccioacuten

Respecto a su antecesor se ha procurado mantener una exquisita compatibilidad hacia atraacutes por dos razones [2] poder reutilizar la enorme cantidad de coacutedigo C existente y facilitar una transicioacuten lo maacutes fluida posible a los programadores de C claacutesico de forma que pudieran pasar sus programas a C++ e ir modificaacutendolos (hacieacutendolos maacutes ++) de forma gradual De hecho los primeros compiladores C++ lo que haciacutean en realidad era traducir (preprocesar) a C y compilar despueacutes (las consecuencias se dejan sentir todaviacutea en el lenguaje

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 47: 50 lenguajes de programación y sus características

El nombre C++ fue propuesto por Rick Mascitti en el antildeo 1983 cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientiacutefico Antes se habiacutea usado el nombre C con clases En C++ la expresioacuten C++ significa incremento de C y se refiere a que C++ es una extensioacuten de C

A continuacioacuten se cita un programa de ejemplo Hola mundo escrito en C++

Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin cout(ltlt) y cin(gtgt)include ltiostreamgt

using namespace std

int main() cout ltlt Hola mundo ltlt endl cinget()

Los objetos en C++ son abstraiacutedos mediante una clase Seguacuten el paradigma de la programacioacuten orientada a objetos un objeto consta de

1 Identidad que lo diferencia de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto)

2 Meacutetodos o funciones miembro3 Atributos o variable miembro

Lenguaje Objective-c

Objective-C es un lenguaje de programacioacuten orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk Originalmente fue creado por Brad Cox y la corporacioacuten StepStone en 1980 En 1988 fue adoptado como lenguaje de programacioacuten de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC Actualmente se usa como lenguaje principal de programacioacuten en Mac OS X iOS y GNUstep

A principios de los 80 el software se desarrollaba usando programacioacuten estructurada La programacioacuten estructurada se establecioacute para ayudar a dividir los programas en pequentildeas partes haciendo maacutes faacutecil el desarrollo cuando la aplicacioacuten se volviacutea muy grande Sin embargo como los problemas seguiacutean creciendo al pasar el tiempo la programacioacuten estructurada se volvioacute compleja dado el desorden de algunos programadores para invocar instrucciones repetitivamente llevando a coacutedigo spaghetti y dificultando la reutilizacioacuten de coacutedigo Muchos vieron que la programacioacuten orientada a objetos seriacutea la solucioacuten al problema De hecho Smalltalk ya teniacutea solucionados muchos de estos problemas algunos de los sistemas maacutes complejos en el mundo funcionaban gracias a Smalltalk Pero Smalltalk usaba una maacutequina virtual lo cual requeriacutea mucha memoria para esa eacutepoca y era demasiado lento

Objective-C fue creado principalmente por Brad Cox y Tom Love a inicios de los 80 en su compantildeiacutea Stepstone Ambos fueron iniciados en Smalltalk mientras estaban en el Programming Technology Center

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 48: 50 lenguajes de programación y sus características

de ITT en 1981 Cox se vio interesado en los problemas de reutilizacioacuten en el desarrollo de software Se dio cuenta de que un lenguaje como Smalltalk seriacutea imprescindible en la construccioacuten de entornos de desarrollo potentes para los desarrolladores en ITI Corporation Cox empezoacute a modificar el compilador de C para agregar algunas de las capacidades de Smalltalk Pronto tuvo una extensioacuten para antildeadir la programacioacuten orientada a objetos a C la cual llamoacute laquoOOPCraquo (Object-Oriented Programming in C) Love mientras tanto fue contratado por Shlumberger Research en 1982 y tuvo la oportunidad de adquirir la primera copia de Smalltalk-80 lo que influyoacute en su estilo como programador

Sintaxis

Objective-C consiste en una capa muy fina situada por encima de C y ademaacutes es un estricto superconjunto de C Esto es es posible compilar cualquier programa escrito en C con un compilador de Objective-C y tambieacuten puede incluir libremente coacutedigo en C dentro de una clase de Objective-C Esto es para escribir el programa claacutesico Hola Mundo para correr en consola se puede utilizar el siguiente coacutedigo

import ltstdiohgtint main( int argc const char argv[] ) printf( Hola Mundon ) return 0

El coacutedigo anterior se diferencia de un coacutedigo en C comuacuten por la primera instruccioacuten import que difiere del include del C claacutesico pero la funcioacuten printf() es puramente C La funcioacuten propia de Objective-C para imprimir una cadena de caracteres en consola es NSLog() utilizaacutendola el coacutedigo anterior quedariacutea de la siguiente manera

int main( int argc const char argv[] ) NSLog( Hola Mundon ) return 0

Lenguaje Java

Extensiones comunes java class jar jad Paradigma Orientado a objetos imperativo Aparecioacute en 1995 Disentildeado por Sun Microsystems (Oracle Corporation) Uacuteltima versioacuten estable Java Standard Edition 8 (18 de marzo de 2014 hace 1 antildeo) Tipo de dato Fuerte Estaacutetico Implementaciones OpenJDK HotSpot muchas otras Dialectos Generic Java Pizza Influido por C++ Objective-C Ha influido a C J JavaScript PHP Python Sistema operativo Multiplataforma Licencia GNU GPL Java Community Process

Java es un lenguaje de programacioacuten de propoacutesito general concurrente orientado a objetos que fue disentildeado especiacuteficamente para tener tan pocas dependencias de implementacioacuten como fuera posible Su intencioacuten es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 49: 50 lenguajes de programación y sus características

ejecuten en cualquier dispositivo (conocido en ingleacutes como WORA o write once run anywhere) lo que quiere decir que el coacutedigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra Java es a partir de 2012 uno de los lenguajes de programacioacuten maacutes populares en uso particularmente para aplicaciones de cliente-servidor de web con unos 10 millones de usuarios reportados

El lenguaje de programacioacuten Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compantildeiacutea Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems Su sintaxis deriva en gran medida de C y C++ pero tiene menos utilidades de bajo nivel que cualquiera de ellos Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier maacutequina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente

La compantildeiacutea Sun desarrolloacute la implementacioacuten de referencia original para los compiladores de Java maacutequinas virtuales y libreriacuteas de clases en 1991 y las publicoacute por primera vez en 1995 A partir de mayo de 2007 en cumplimiento con las especificaciones del Proceso de la Comunidad Java Sun volvioacute a licenciar la mayoriacutea de sus tecnologiacuteas de Java bajo la Licencia Puacuteblica General de GNU Otros tambieacuten han desarrollado implementaciones alternas a estas tecnologiacuteas de Sun tales como el Compilador de Java de GNU y el GNU Classpath

Orientado a objetos

La primera caracteriacutestica orientado a objetos (ldquoOOrdquo) se refiere a un meacutetodo de programacioacuten y al disentildeo del lenguaje Aunque hay muchas interpretaciones para OO una primera idea es disentildear el software de forma que los distintos tipos de datos que usen esteacuten unidos a sus operaciones Asiacute los datos y el coacutedigo (funciones o meacutetodos) se combinan en entidades llamadas objetos

Sintaxis

La sintaxis de Java se deriva en gran medida de C++ Pero a diferencia de eacuteste que combina la sintaxis para programacioacuten geneacuterica estructurada y orientada a objetos Java fue construido desde el principio para ser completamente orientado a objetos Todo en Java es un objeto (salvo algunas excepciones) y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos)

Aplicaciones autoacutenomas

Este ejemplo necesita una pequentildea explicacioacuten

Todo en Java estaacute dentro de una clase incluyendo programas autoacutenomos El coacutedigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con

extensioacuten ldquojavardquo Una clase (class) declarada puacuteblica (public) debe seguir este convenio En el ejemplo anterior la clase es Hola por lo que el coacutedigo fuente debe guardarse en el fichero ldquoHolajavardquo

El compilador genera un archivo de clase (con extensioacuten ldquoclassrdquo) por cada una de las clases definidas en el archivo fuente Una clase anoacutenima se trata como si su nombre fuera la concatenacioacuten del nombre de la clase que la encierra el siacutembolo ldquo$rdquo y un nuacutemero entero

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 50: 50 lenguajes de programación y sus características

Los programas que se ejecutan de forma independiente y autoacutenoma deben contener el meacutetodo rdquomain()rdquo

La palabra reservadardquovoidrdquo indica que el meacutetodo main no devuelve nada El meacutetodo main debe aceptar un array de objetos tipo String Por acuerdo se referencia como

rdquoargsrdquo aunque puede emplearse cualquier otro identificador

La palabra reservadardquostaticrdquo indica que el meacutetodo es un meacutetodo de clase asociado a la clase en vez de a una instancia de la misma El meacutetodo main debe ser estaacutetico o rsquorsquode clasersquorsquo

La palabra reservada public significa que un meacutetodo puede ser llamado desde otras clases o que la clase puede ser usada por clases fuera de la jerarquiacutea de la propia clase Otros tipos de acceso son rdquoprivaterdquo o rdquoprotectedrdquo

La utilidad de impresioacuten (en pantalla por ejemplo) forma parte de la biblioteca estaacutendar de Java la clase lsquorsquorsquoSystemrsquorsquorsquo define un campo puacuteblico estaacutetico llamado lsquorsquorsquooutrsquorsquorsquo El objeto out es una instancia de lsquorsquorsquoPrintStreamrsquorsquorsquo que ofrece el meacutetodo lsquorsquorsquoprintln (String)rsquorsquorsquo para volcar datos en la pantalla (la salida estaacutendar)

Las aplicaciones autoacutenomas se ejecutan dando al entorno de ejecucioacuten de Java el nombre de la clase cuyo meacutetodo main debe invocarse Por ejemplo una liacutenea de comando (en Unix o Windows) de la forma java ndashcp Hola ejecutaraacute el programa del ejemplo (previamente compilado y generado ldquoHolaclassrdquo) El nombre de la clase cuyo meacutetodo main se llama puede especificarse tambieacuten en el fichero ldquoMANIFESTrdquo del archivo de empaquetamiento de Java (jar)

Lenguaje C

Disentildeado por Dennis M Ritchie Uacuteltima versioacuten estable C11 (diciembre de 2011) Tipo de dato Deacutebil Estaacutetico Implementaciones GCC Intel C entre muchas maacutes Dialectos Cyclone Unified Parallel C Split-C Cilk C Influido por B (BCPL CPL) ALGOL 681 Ensamblador PLI Fortran Ha influido a Vala C Objective-C C++ AWK bc Java JavaScript PHP Perl NXC D Go Sistema operativo Multiplataforma

C es un lenguaje de programacioacuten de propoacutesito general que ofrece economiacutea sintaacutectica control de flujo y estructuras sencillas y un buen conjunto de operadores No es un lenguaje de muy alto nivel y maacutes bien un lenguaje pequentildeo sencillo y no estaacute especializado en ninguacuten tipo de aplicacioacuten Esto lo hace un lenguaje potente con un campo de aplicacioacuten ilimitado y sobre todo se aprende raacutepidamente En poco tiempo un programador puede utilizar la totalidad del lenguaje

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 51: 50 lenguajes de programación y sus características

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX puesto que fueron desarrollados conjuntamente Sin embargo este lenguaje no estaacute ligado a ninguacuten sistema operativo ni a ninguna maacutequina concreta Se le suele llamar lenguaje de programacioacuten de sistemas debido a su utilidad para escribir compiladores y sistemas operativos aunque de igual forma se puede desarrollar cualquier tipo de aplicacioacuten

C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoriacutea de computadoras actuales como son los caracteres nuacutemeros y direcciones Estos tipos de datos pueden ser manipulados por las operaciones aritmeacuteticas que proporcionan las computadoras No proporciona mecanismos para tratar tipos de datos que no sean los baacutesicos debiendo ser el programador el que los desarrolle Esto permite que el coacutedigo generado sea muy eficiente y de ahiacute el eacutexito que ha tenido como lenguaje de desarrollo de sistemas No proporciona otros mecanismos de almacenamiento de datos que no sea el estaacutetico y no proporciona mecanismos de entrada ni salida Ello permite que el lenguaje sea reducido y los compiladores de faacutecil implementacioacuten en distintos sistemas Por contra estas carencias se compensan mediante la inclusioacuten de funciones de libreriacutea para realizar todas estas tareas que normalmente dependen del sistema operativo

La mejor forma de aprender un lenguaje es programando con eacutel El programa maacutes sencillo que se puede escribir en C es el siguiente

main( )

Como nos podemos imaginar este programa no hace nada pero contiene la parte maacutes importante de cualquier programa C y ademaacutes es el maacutes pequentildeo que se puede escribir y que se compile correctamente En el se define la funcioacuten main que es la que ejecuta el sistema operativo al llamar a un programa C El nombre de una funcioacuten C siempre va seguida de pareacutentesis tanto si tiene argumentos como si no La definicioacuten de la funcioacuten estaacute formada por un bloque de sentencias que esta encerrado entre llaves

Un programa algo maacutes complicado es el siguiente

include ltstdiohgtmain( )printf(Hola amigosn)

Con el visualizamos el mensaje Hola amigos en el terminal En la primera liacutenea indica que se tengan en cuenta las funciones y tipos definidos en la libreriacutea stdio (standard inputoutput) Estas definiciones se encuentran en el fichero header stdioh Ahora en la funcioacuten main se incluye una uacutenica sentencia que llama a la funcioacuten printf Esta toma como argumento una cadena de caracteres que se imprimen van encerradas entre dobles comillas El siacutembolo n indica un cambio de liacutenea

Hay un grupo de siacutembolos que son tratados como caracteres individuales que especifican algunos caracteres especiales del coacutedigo ASCII Los maacutes importantes son

Alerta

b Espacio atraacutes

f Salto de paacutegina

n Salto de liacutenea

r Retorno de carro

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 52: 50 lenguajes de programación y sus características

t Tabulacioacuten horizontal

v Tabulacioacuten vertical

Barra invertida

Comilla simple

Comillas dobles

OOO Visualiza un caraacutecter cuyo coacutedigo ASCII es OOO en octal

xHHH Visualiza un caraacutecter cuyo coacutedigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes moacutedulos o fuentes Es conveniente mantener las fuentes de un tamantildeo no muy grande para que la compilacioacuten sea raacutepida Tambieacuten al dividirse un programa en partes puede facilitar la legibilidad del programa y su estructuracioacuten Las diferentes fuentes son compilados de forma separada uacutenicamente los fuentes que han sido modificados desde la uacuteltima compilacioacuten y despueacutes combinados con las libreriacuteas necesarias para formar el programa en su versioacuten ejecutable

Lenguaje Bash

El interprete Bash es algo maacutes que una simple consola Es un lenguaje interpretado de programacioacuten que ayuda al administrador a realizar la mayor parte de las tareas necesarias tanto en la automatizacioacuten como en el arranque del sistema Se utiliza especialmente (no exclusivamente) en sistemas Unix

Objetivos

Realizar una programacioacuten baacutesica en Bash Entender un script tiacutepico de arranque y configuracioacuten

Clases

Introduccioacuten y Repaso o Queacute es una shell y una consola Unix o Repasar

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 53: 50 lenguajes de programación y sus características

Comandos Baacutesicos y Avanzados 100 ejercicios linux gnuutils redireccioacuten de procesos y varios comandos en unoo El lenguaje Bash (Ver Documentacioacuten )o Proceso de Arranque del Sistema inittab - nivel de arranque (scripts) - consolas (tty)- programa login -

interprete del usuarioo Entrada y Salida de Datos Redireccioacuten stdin stdout stderr Tuberiacuteas o Pipes | o Listas de Comandos AND ampamp Soacutelo se ejecuta un comando si la salida del anterior es sin error la lista de comandos para cuando

hay un error Sirve para ver dos argumentos [ -z $1 ] ampamp echo Argumento 1 = $1 [ -z $2 ] ampamp echo Hay un Argumento 2 = $2

OR || Se van ejecutando los comandos mientras la salida es falso o de error El uacuteltimo comando en ejecutarse es el que devuelve verdadero

Borraraacute un archivo soacutelo si existe si no existe soacutelo ejecuta la primera comparacioacuten [ -f $archivo ] || (rm -f $archivo echo Borreacute el Archivo $archivo )

o Queacute es un script Primer Script Hello World (archivo de texto con encabezado + ejecutable + exit) Importancia del inteacuterprete del shell ( binbash o usrbinperl o usrbintcl ) Lo baacutesico del lenguaje o Comentarios o Variables Variables asignacioacuten y tipos (VAR=hola o VAR=314) y aacutembito (scope) de las variables) Sustitucioacuten de variables $VAR Variables Especiales $ $[0-9] $ $ $$ $ Variables de Entorno LOGNAME HOME IFS PATH PS1 PS2 TERM etc Gestioacuten de Variables de entorno env set unset y export o Funcionamiento de las cadenas Uso de las comillas dobles ( ) simple ( ) y comilla hacia atraacutes (backstick) Caracteres de escape y Especiales (nrtvba) de echo o Caracteriacutesticas Baacutesicas Blank Separacioacuten por espacios yo TAB Word Tokens conjuntos de caracteres delimitados Name Identificadores Metacharacter Caracteres con funcionamiento especial | amp ( ) lt gt space tab Control operator || ampamp amp ( ) | ltnewlinegt Palabras Reservadas (muy pocas)o Entrada de Datos comando read y liacutenea de comandos ($0 $1 ) Sentencias de Control y Repetitivas o Expresiones y Comparacioacuten Expresiones Aritmeacuteticas (( expresioacuten )) y con [expresion ] Expresiones Condicionales Sintaxis Test expression oacute [expression] (para un operando o dos) Ejemplos de Opciones evaluacioacuten de cadenas (-z -n cadena1 = cadena2 cadena1 = cadena2)

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 54: 50 lenguajes de programación y sus características

evaluacioacuten de archivos( -d -x -e fichero1 -ot fichero2) evaluacioacuten aritmeacutetica (-lt -eq -ge) y evaluacioacuten loacutegica (-o -a) o Repetitivas fordodone whiledodone

for valor in variabledocomandosdone

Sintaxis de la sentencia whilewhile expresiondocomandosdone

Lenguaje Lua

LUA es un lenguaje de programacioacuten de extensioacuten Lo cual significa que no es un lenguaje para escribir programas ejecutables stand-alone En lugar de esto LUA estaacute pensado para integrarse dentro de un programa host Este programa host es el que se encarga de lanzar y ejecutar el programa LUA Ademaacutes el programa host puede declarar funciones escritas en C que pueden ser invocadas desde el programa LUALUA ofrece soporte para los siguientes conceptos de programacioacuten

programacioacuten orientada a objetos programacioacuten funcional programacioacuten data-driven

El concepto de lenguaje de extensioacuten es similar a VBA en las aplicaciones de microsoft officeLUA tiene un garbage collector con lo cual no es necesario liberar los objetos que se van creando Pero hay que tener cuidado con referencias a objetos que se quedan para siempre en alguna variable

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 55: 50 lenguajes de programación y sus características

LeacutexicoLUA tiene un leacutexico basado en C

Los punto y coma al final de sentencia son opcionales Los identificadores constan de letras nuacutemeros y underscore (no pueden empezar con nuacutemeros tampoco se

recomienda que empiecen con underscore ya que esta notacioacuten se utiliza para identificadores internos de LUA)Bloques son una secuencia de sentencias que termina en end (funciones bucles if bloques do -- end)Palabras reservadas and break do else elseif end false for function goto if in local nil not or repeat return then true until whileOperadores que son distintos a otros lenguajes

~= distinto concatenacioacuten de strings nuacutemero variable de argumentos en una funcioacuten

Comentarios

-- comentario de una liacutenea --[[ comentario multiliacutenea ]]--

Variables Valores y TiposLUA es un lenguaje tipado dinaacutemicamente lo que significa que las variables pueden apuntar a valores de cualquier tipo y ademaacutes pueden apuntar a valores de diferentes tipos en diferentes momentos Por ejemplov = 12v = abc

Tipos de datos

nil indica que a una variable no se le ha asignado todaviacutea ninguacuten valor boolean puede ser true o false number todos los nuacutemeros son reales punto flotante doble precisioacuten string es una cadena de caracteres function un bloque de coacutedigo con nombre table es similar a los objetos en otros lenguajes de programacioacuten

Lenguaje COMAL

COMAL (COMmon Algorithmic Language) es un lenguaje de programacioacuten desarrollado en Dinamarca por Benedict Loslashfstedt y Boslashrge Christensen en 1973

El texto COMAL 80 PROGRAMMING LANGUAGE REPORT contiene la definicioacuten formal del lenguaje

COMAL fue creado como una mezcla de los lenguajes BASIC y Pascal al objeto de introducir faacutecilmente a los estudiantes en el paradigma de la programacioacuten estructurada

Historia

A principios de la deacutecada de 1980 Apple Computer distribuyoacute ordenadores Apple II con el sistema operativo CPM y el lenguaje COMAL en las escuelas de secundaria irlandesas

Ejemplos

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 56: 50 lenguajes de programación y sus características

Condiciones

IF condicioacuten THEN InstruccionesENDIF

Bucles

FOR num= 1 TO 1000 DO PRINT numENDFOR

Ejemplo de programa

10 PAGE20 FOR num= 1 TO 10 DO30 PRINT iexcliexcliexclESTO ES SOLO UN EJEMPLO40 ENDFOR50 END

Lenguaje A+

Aparecioacute en 1988 Disentildeado por Arthur Whitney Uacuteltima versioacuten estable 420-2 (Noviembre de 2006) Tipo de dato fuerte y dinaacutemico Implementaciones A+ Influido por APL Ha influido a K Licencia GNU Licencia Puacuteblica General

A+ es un lenguaje de programacioacuten matriz que desciende del lenguaje de programacioacuten A que a su vez fue creado para sustituir a APL en 1988 Arthur Whitney desarrolloacute la parte de A de A+ mientras otros desarrolladores como Morgan Stanley lo ampliaban antildeadieacutendole una interfaz graacutefica de usuario y otras caracteriacutesticas del lenguaje A+ fue disentildeada para aplicaciones numeacutericas intensivas especialmente operaciones financieras A+ funciona en distintas variantes de Unix incluyendo Linux A+ es un lenguaje de programacioacuten de alto nivel interactivo e interpretado

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 57: 50 lenguajes de programación y sus características

A+ dispone de un amplio conjunto de funciones y operadores una interfaz graacutefica de usuario con sincronizacioacuten automaacutetica de variables y widgets Ejecucioacuten asincroacutenica de funciones asociadas con variables y eventos carga dinaacutemica de subrutinas de usuario compiladas y otras caracteriacutesticas Una nueva interfaz graacutefica auacuten no ha sido adaptada a todas las plataformas

A+ implementa los siguientes cambios del lenguaje APL

Una funcioacuten de A+ puede tener hasta nueve paraacutemetros formales Las declaraciones de coacutedigo A+ estaacuten separadas por punto y coma Por lo que una sola declaracioacuten puede ser

dividida en dos o maacutes liacuteneas fiacutesicas El resultado expliacutecito de una funcioacuten u operador es el resultado de la uacuteltima instruccioacuten ejecutada A + implementa un objeto llamado dependencia que es una variable global (la variable dependiente) y una

definicioacuten asociada que es como una funcioacuten sin argumentos Los valores se pueden establecer expliacutecitamente y se hace referencia en exactamente la misma forma que para una variable global pero tambieacuten se puede establecer a traveacutes de la definicioacuten asociada

Un desarrollo interactivo de A+ se realiza principalmente en el editor XEmacs a traveacutes de extensiones para editor Debido a que el coacutedigo A+ utiliza los siacutembolos APL originales para mostrar A+ se requiere una fuente con los caracteres especiales una fuente llamada Kapl que se ofrece en el sitio web con este objetivo

Arturo Whitney llegoacute a crear el lenguaje K un lenguaje matriz propietario Al igual que J K omite el juego de caracteres APL No tiene por queacute algunas de las complejidades percibidas de A+ como la existencia de estados y dos modos diferentes de sintaxis

Lenguaje J

Paradigma Orientado a objetos Aparecioacute en 2005 Disentildeado por Microsoft Corporation Uacuteltima versioacuten estable 20 (10 de enero 2007) Tipo de dato Fuerte Estaacutetico Implementaciones Visual Studio NET Mono Influido por Java Sistema operativo NET Framework

El lenguaje de programacioacuten J (o J-sharp) es un lenguaje transicional para programadores del lenguaje de programacioacuten Java y del lenguaje J++ de Microsoft creado con la intencioacuten de que ambos puedan usar sus conocimientos actuales para crear aplicaciones en la plataforma NET de Microsoft J se

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa
Page 58: 50 lenguajes de programación y sus características

supone compatible con Java tanto a nivel coacutedigo fuente como binario En teoriacutea J puede ser usado para transicional aplicaciones que usan bibliotecas de terceros aun cuando el coacutedigo de eacutestas no esteacute disponible

De la misma forma que sucediacutea con J++ J soacutelo soporta un subconjunto limitado de las caracteriacutesticas de Java

Si se desea ejecutar coacutedigo de Java como en un ambiente real de Java en un entorno NET debe considerarse IKVM Mientras que J proporciona compatibilidad con la sintaxis de Java en el contexto de un ambiente NET IKVM es en realidad un ambiente Java ejecutaacutendose en el contexto de un ambiente NET

J uacutenicamente salioacute en Visual Studio 2005 y en Visual Studio 2008 dejoacute de producirse

  • Expresiones
  • ActionScript 3
    • Abstraccioacuten de datos
    • Procesamiento paralelo
      • Componentes leacutexicos
      • Caracteriacutesticas
      • Implantaciones
        • SharpDevelop
        • MonoDevelop
          • Sintaxis
          • Ejemplo
          • Sintaxis
            • Ejemplos
              • Hello World Eacuteste es el tradicional programa Hola ampamp nada Muestra el mensaje Hola mundo ltsourcegt
              • Disentildeo de filtros digitales
                  • Bloques
                  • Con PLSQL se pueden construir distintos tipos de programas procedimientos funciones y bloques anoacutenimos paquetes etc Todos ellos tienen en comuacuten una estructura baacutesica denominada bloque
                  • Ejemplos
                    • Hola mundo
                      • Trabajando con listas
                      • Orientada a objetos
                      • Metaprogramacioacuten
                        • Tipos de datos
                          • Sintaxis y semaacutentica
                            • Ejemplos sencillos
                              • Elementos del lenguaje
                              • Tipos de datos
                              • Sintaxis
                              • Sintaxis
                                • Aplicaciones autoacutenomas
                                • Objetivos
                                • Clases
                                  • Leacutexico
                                  • Variables Valores y Tipos
                                  • Historia
                                  • Ejemplos
                                  • Ejemplo de programa