Está en la página 1de 54

PARADIGMAS DE PROGRAMACION

Y LENGUAJES
C

CLASIFICACION
Programación imperativa o procedural.

CAMPO DE APLICACIÓN
Hecho principalmente para la fluidez de programación en sistemas UNIX. Se usa
también para el desarrollo de otros sistemas operativos como Windows o GNU/Linux.
Igualmente para aplicaciones de escritorio como GIMP, cuyo principal lenguaje de
programación es C.

JAVA
Programación orientada a objetos.

CAMPO DE APLICACIÓN
El diseño de Java, su robustez, el respaldo de la industria y su fácil portabilidad han
hecho de Java uno de los lenguajes con un mayor crecimiento y amplitud de uso en
distintos ámbitos de la industria de la informática.

 En dispositivos móviles y sistemas empotrados


 En el navegador web
 En sistemas de servidor
 En aplicaciones de escritorio
 Plataformas soportadas

OBJETIVE-C
Programación orientada a objetos.
CAMPO DE APLICACIÓN
El lenguaje de programación utilizado por Apple para el desarrollo de aplicaciones tanto
en la plataforma Mac como en iOS, a tal punto que ya es el tercer lenguaje de
programación más popular entre los desarrolladores.

C++

CLASIFICACION
Programación orientada a objetos.

CAMPO DE APLICACIÓN
Exitoso lenguaje de programación C con mecanismos que permitan la manipulación de
objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos,
el C++ es un lenguaje híbrido. 

C#

CLASIFICACION
Programación imperativa o procedural.

Programación orientada a objetos.

Programación funcional.

PALABRAS RESERVADAS
TIPO DE DATOS

Tipos de datos enteros

Tipo Tamaño Significado

byte 8-bit (1-byte) Entero sin signo

sbyte 8-bit (1-byte) Entero con signo

short 16-bit (2-byte) Entero corto con signo

ushort 16-bit (2-byte) Entero corto sin signo

int 32-bit (4-byte) Entero medio con signo

uint 32-bit (4-byte) Entero medio sin signo

long 64-bit (8-byte) Entero largo con signo

ulong 64-bit (8-byte) Entero largo sin signo

Tipo Tamaño Significado

float 32-bit (4-byte) Coma flotante corto

double 64-bit (8-byte) Coma flotante largo

decimal 128-bit (16-byte) Coma flotante monetario

Tipo Tamaño Significado Tipo Tamaño Significado

char 16-bit (2- Carácter char 16-bit (2-byte) Carácter


byte) unicode unicode

CODIFICACION

Un hombre desea saber cuánto dinero se genera por concepto de intereses sobre la
cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre
y cuando estos excedan a S/.7000, y en ese caso desea saber cuánto dinero tendrá
finalmente en su cuenta.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ejercicio01

class Hombre

private string nombre;

private float dinero;

public void Inicio()

Console.WriteLine("---------BANCO COMOPROGRAMAR.ORG--------");

Console.WriteLine("-----------------------------");

Console.WriteLine("INGRESE SU NOMBRE: ");

nombre = Console.ReadLine();

Console.WriteLine("INGRESE SU MONTO DINERO; ");

dinero = float.Parse(Console.ReadLine());

Console.Clear();

public void Imprimir()


{

Console.WriteLine("---------BANCO COMOPROGRAMAR.ORG--------");

Console.WriteLine("-----------------------------");

Console.WriteLine("NOMBRE: " + nombre);

if (dinero > 7000)

Console.WriteLine("USTED NO PUEDE EXCEDER EL MONTO DE S/ 7000");

else

Console.WriteLine("INVERSION: " + dinero);

Console.ReadLine();

static void Main(string[] args)

Hombre per = new Hombre();

per.Inicio();

per.Imprimir();

}
}

En un almacén se hace un 20% de descuento a los clientes cuya compra


supere los S/.1000 ¿Cuál será la cantidad que pagara una persona por su
compra?

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ejercicios02

class Cliente

private float descuento;

private float precio;

public void Inicio()

Console.WriteLine("INGRESE PRECIO: ");

precio = float.Parse(Console.ReadLine());

Console.Clear();

public void Descuento()

{
if (precio > 1000)

float res = (precio * 20) / 100;

descuento = precio - res;

Console.WriteLine("--------TIENDA KEDINN -------");

Console.WriteLine("DESCUENTO DEL 20% POR SUPERAR S/1000");

Console.WriteLine("PRECIO ES: " + descuento);

Console.ReadLine();

else

Console.WriteLine("--------TIENDA KEDINN -------");

Console.WriteLine("PRECIO ES: " + precio);

Console.ReadLine();

Console.ReadKey();

static void Main(string[] args)

Console.WriteLine("--------TIENDA KEDINN -------");

Cliente clie = new Cliente();

clie.Inicio();

clie.Descuento();

}
}

CAMPO DE APLICACIÓN
Es un lenguaje de programación diseñado para .net framework con el puedes hacer
programas para windows xp en adelante si tienen .net (vista y 7 ya lo traen) también
puedes hacer páginas web con asp.net, con C# programas del lado del servidor.
Puedes hacer muchas cosas con C#: 

 Programas de escritorio en Windows


 Páginas web
 Videojuegos con xna para pc y xbox 
 Programas en linux con mono
 Conectarse a bases de datos

PHP

CLASIFICACION
Programación imperativa o procedural.

Programación orientada a objetos.

CAMPO DE APLICACIÓN
PHP es un lenguaje de código abierto muy popular, adecuado para desarrollo web y
que puede ser incrustado en HTML. Es popular porque un gran número de páginas y
portales web están creadas con PHP. Código abierto significa que es de uso libre y
gratuito para todos los programadores que quieran usarlo. Incrustado en HTML significa
que en un mismo archivo vamos a poder combinar código PHP con código HTML,
siguiendo unas reglas.

PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página
estática a aquella cuyos contenidos permanecen siempre igual, mientras que llamamos
páginas dinámicas a aquellas cuyo contenido no es el mismo siempre. Por ejemplo, los
contenidos pueden cambiar en base a los cambios que haya en una base de datos, de
búsquedas o aportaciones de los usuarios, etc.

VISUAL BASIC

CLASIFICACION
Eventos

CAMPO DE APLICACIÓN
Simplifica la programación utilizando un ambiente de desarrollo completamente gráfico
que facilitara la creación de interfaces gráficas y, en cierta medida, también la
programación misma.

PHYTON

CLASIFICACION
Programación imperativa o procedural.

Programación orientada a objetos.

Programación funcional.

PALABRAS RESERVADAS

and, del, fo, is, raise, asser, elif, from, lambda, return, break, else, global, not,
try, class, except, if, or while, continue, exec, import, pass, yield, def, finally, in, print.

TIPOS DE DATOS
Los tipos de datos se pueden resumir en esta tabla:
Tipo Clase Notas Ejemplo

Str Cadena Inmutable 'Cadena'

unicode Cadena Versión Unicode de str u'Cadena'


List Secuencia Mutable, puede contener objetos [4.0, 'Cadena', True]
de diversos tipos

tuple Secuencia Inmutable, puede contener (4.0, 'Cadena', True)


objetos de diversos tipos

Set Conjunto Mutable, sin orden, no contiene set([4.0, 'Cadena', True])


duplicados

frozense Conjunto Inmutable, sin orden, no frozenset([4.0, 'Cadena',


t contiene duplicados True])

dict Mapping Grupo de pares clave:valor {'key1': 1.0, 'key2': False}

Int Número Precisión fija, convertido 42


entero en long en caso de overflow.

long Número Precisión arbitraria 42L ó 456966786151987643L


entero

float Número Coma flotante de doble precisión 3.1415927


decimal

complex Número Parte real y parte imaginaria j. (4.5 + 3j)


complejo

bool Booleano Valor booleano verdadero o falso True o False

 Mutable: si su contenido (o dicho valor) puede cambiarse en tiempo de


ejecución.
 Inmutable: si su contenido (o dicho valor) no puede cambiarse en tiempo de
ejecución.

CODIFICACION
Introducir un nuumero por teclado y decir si es par o impar
### Introducir un nuumero por teclado y decir si es par o impar
h = input('Introduzca un numero: ')

if h%2 == 0:

print 'Este numero es par'

else:

print 'Este numero es impar'


Introducir dos numeros por teclado. Imprimir los numeros que hay entre ellos
comenzando por el mas pequeno. Contar cuantos hay y cuantos de ellos son pares.
Calcular la suma de los pares
##Introducir dos numeros por teclado. Imprimir los numeros que hay entre ellos
###comenzando por el mas pequeno. Contar cuantos hay y cuantos de ellos son
###pares. Calcular la suma de los pares
p=0

cp = 0

c=0

n=0

h=0

h1 = input('Primer numero: ')

h2 = input('Segundo numero: ')

if h1 > h2:

n = h2

h = h1

else:

n = h1

h = h2

while n < h:

n += 1

if n == h:

break

c += 1

print n,

if n%2 == 0:

cp += 1
p += n

print '\nEntre % i y %i hay %i numeros siendo %i pares' % (h1, h2, c, cp)

print 'La suma de los pares es %i' % p

CAMPO DE APLICACIÓN
Python está en movimiento y en pleno desarrollo, pero ya es una realidad y una
interesante opción para realizar todo tipo de programas que se ejecuten en cualquier
máquina. El equipo de desarrollo está trabajando de manera cada vez más organizada y
cuentan con el apoyo de una comunidad que está creciendo rápidamente.

 Algunas empresas que utilizan Python son Yahoo, Google, Walt Disney, la NASA, Red
Hat, etc.

JAVASCRIPT

CLASIFICACION
Programación imperativa o procedural.

Programación orientada a objetos.

Programación funcional.

PALABRAS RESERVADAS
break Predeterminados función retur var
n

case Eliminar if switch void

catch Do in this While

const Else instanceo throw Con


f

continue Finally let try


debugge For new typeof
r

TIPOS DE DATOS
Tipos numéricos.

Los tipos numéricos los podemos dividir en reales y enteros.

Tipo numérico entero.

Los enteros pueden ser representados en tres formatos distintos:

Decimal: enteros en base 10.

Hexadecimal: enteros en base 16. Se coloca antes del número en base 16 0x o 0X.

Octal: enteros en base 8. Colocamos un cero antes de dicho número en octal.

Ejemplo: Estas tres variables númericas tendrán un entero con el mismo valor.

var1 = 20;var2 = 0x14;var3 = 024;

Tipo numérico real.

Los reales se componen de una parte entera y otra fraccionaria separada por un punto
de la anterior. La parte fraccionaria puede estar compuesta por un indicador de
exponente E o e seguido de un número entero que indica el valor del exponente. A
continuación se mostrarón algunos ejemplos:

 25.478
 2.3e45
 5.6E-2
 -3.789
Los strings.

Una string es una ristra de caracteres delimitadas por comillas. Las comillas serán
simples o dobles atendiendo a una determinada regla.

Por defecto se usarán comillas dobles ("), pero si alguna sentencia a de ir incluida entre
dichas comillas, si esa sentencia contiene una string o a su vez otra sentencia que
también deba ir delimitada por dichas comillas, estas comillas serán entonces comillas
simples ('). Ejemplo:

confirm("¿Estás seguro?");

OnMouseOver = "confirm('¿Estás seguro?');

Tipo booleano.

El tipo booleano simplemente distingue entre dos estados, un estado de éxito o de


activado valor verdadero true, y un estado de fracaso o de desactivado, valor false.

CODIFICACION
CAMPO DE APLICACIÓN
Javascript es un lenguaje que puede ser utilizado por profesionales y para quienes se
inician en el desarrollo y diseño de sitios web. No requiere de compilación ya que el
lenguaje funciona del lado del cliente, los navegadores son los encargados de
interpretar estos códigos.

Muchos confunden el Javascript con el Java pero ambos lenguajes son diferentes y
tienes sus características singulares. Javascript tiene la ventaja de ser incorporado en
cualquier página web, puede ser ejecutado sin la necesidad de instalar otro programa
para ser visualizado.

e puede crear todo tipo de programa que puede ser ejecutado en cualquier ordenador
del mercado: Linux, Windows, Apple, etc. Debido a sus características también es muy
utilizado para internet.

TRANSACT-SQL

CLASIFICACION
Programación imperativa o procedural.

CAMPO DE APLICACIÓN
SQL (Structured Query Language), Lenguaje Estructurado de Consulta es el lenguaje
utilizado para definir, controlar y acceder a los datos almacenados en una base de
datos relacional.

Como ejemplos de sistemas gestores de bases de datos que utilizan SQL podemos citar
DB2, SQL Server, Oracle, MySql, Sybase, PostgreSQL o Access.

El SQL es un lenguaje universal que se emplea en cualquier sistema gestor de bases de


datos relacional. Tiene un estándar definido, a partir del cual cada sistema gestor ha
desarrollado su versión propia.

VISUAL BASIC.NET

CLASIFICACION
Programación orientada a objetos.

CAMPO DE APLICACIÓN
Se presenta la tecnología .NET Framework, que facilita el desarrollo de aplicaciones
informáticas. Esta tecnología es la base sobre la que se trabaja al utilizar cualquier
lenguaje perteneciente a Visual Studio .NET, como puede ser Visual Basic .NET.

ENTORNO INTEGRADO DE DESARROLLO

Se presenta el entorno de desarrollo de Visual Studio .NET, que consta de un completo


editor de código y muchas herramientas que facilitan el desarrollo, programación y
depuración de aplicaciones informáticas.

RUBY

CLASIFICACION
Programación orientada a objetos.

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

PERL

CLASIFICACION
Programación imperativa o procedural.

Programación orientada a objetos.

Programación funcional.

PALABRAS RESERVADAS
 abs: devuelve el valor absoluto de la expresion pasada.
 chmod: cambia los permisos de los ficheros dados.
 chop: recorta y retorna el ultimo caracter de una cadena.
 chown: cambia el propietario de los ficheros dados.
 close : cierra un fichero. cos: devuelve el coseno del angulo dado en radianes.
 defined: sirve para comprobar si existe una variable, formato, subrutina,etc..
 delete: borra un valor de un array asociativo a traves de su clave.
 die:imprime en la salida del error estandar un mensaje pasado como parametro
cuando ocurre un error en la ejecucion de una sentencia.
 eof: retorna verdadero si el final del fichero dado.
 eval: evalua la expresion pasada como si se tratase de un pequeno programa
perl.
 exec: ejecuta lo que pasemos como parametro y sale del programa.
 exit: hace que salgamos del perl script devolviendo al sistema operativo el valor
pasado como argumento.
 exp: retorna el numero e elevado a la potencia pasada como parametro.
 fileno: devuelve el descriptor del manejador del fichero pasado como parametro.
 fork: realiza una llamada fork. getc: lee el siguiente caracter del fichero
especificado.
 hex: devuelve el valor decimal del numero hexadecimal pasado como parametro.
 index: devuelve la posicion de la primera ocurrencia de una cadena en otra.
 int: devuelve la parte entera del parametro pasado.
 join: une las cadenas pasadas como argumento con un separador tambien
pasado como argumento.
 keys: devuelve todas las claves de un array asociativo.
 length: devuelve la longitud en caracteres del parametro pasado.
 local: declara como locales las variables pasadas como argumentos.
 log: devuelve el logaritmo del numero dado.
 mkdir: crea un directorio en el camino dado.
 oct: devuelve el valor decimal del numero octal pasado como parametro.
 open: abre el fichero fichero dado asociandole un manejador de fichero
especificado tambien como parametro.
 pop: retorna y borra el ultimo elemento del array dado.
 print: muestra en la salida standard o en el fichero especificado la expresion
dada.
 push: anade el valor dado al final del array pasado como parametro.
 rand: devuelve un numero aleatorio entre 0 y el valor pasado como argumento.
 read: lee un determinado numero de caracteres desde el fichero pasado como
argumento.
 rename: sirve para renombrar un fichero.
 require: sirve para incluir codigo externo en nuestro guion.
 return: devuelve un valor desde una subrutina.
 rmdir: borra un directorio.
 seek: situa un puntero a fichero en un lugar determinado.
 select: sirve para seleccionar el manejador de fichero que sera utilizado por
defecto para la salida de los comandos o funciones que no especifiquen un
determinado manejador de fichero como parametro.
 shift: devuelve el primer valor del array dado borrandolo posteriormente.
 sin: devuelve el seno del angulo pasado en radianes.
 sleep: causa que el perl script o guion se detenga el numero de segundos
especificados.
 sort: ordena el array dado.
 split: divide una cadena en subcadenas segun el separador especificado.
 sqrt: devuelve la raiz cuadrada del numero pasado.
 system: igual que exec pero no se sale del perl script.
 tell: devuelve la posicion actual del puntero a fichero del manejador de fichero
especificado.
 values: devuelve todos los valores del array asociativo dado.
 write: escribe un registro con formato en el fichero asociado a ese formato.
TIPOS DE DATOS
Perl tiene tres tipos de datos: escalares, listas y hashes (listas asociadas):

 Un escalar es un solo valor; puede ser un número, un string (cadena de


caracteres) o una referencia.
 Una lista es una colección de escalares (una variable que almacena una lista se
llama array).
 Un hash, o memoria asociativa, es un mapeo de strings a escalares;
los strings se llaman claves y los escalares valores.

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

 $var # un escalar
 @var # un ''array''
 %var # un ''hash''

Datos escalares

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


varias clases.

 $n = 42;
 $nombre = "juan";
 $color = 'rojo';

Perl convertirá los strings en números y viceversa dependiendo del contexto en que


sean usados.

Datos array
Una lista se define listando sus elementos, separados por comas y rodeados por
paréntesis donde así sea requerido por la precedencia de los operadores.

@puntuaciones = (32, 45, 16, 5);

Datos hash

Un hash puede ser inicializado desde una lista de pares clave/valor.

%favorito = (

joe => 'rojo',

sam => 'azul',

);

Datos booleanos

En Perl no existen tales datos, sin embargo cuando se analizan internamente si el dato
contiene algún valor diferente de cero Perl lo considera como verdadero.

 $fruta = '0'; #Falso


 $fruta = '5'; #Verdadero
 $fruta = "5 mangos"; #Verdadero

CODIFICACION
Resolvemos el problema de calcular el área de un triángulo con la formula área =
base por altura sobre dos.

El código del programa prog1.pl es:

#! /usr/bin/perl -w
 
# usando modulo o libreria CGI
 
use CGI;
 
# creando un OBJETO de tipo CGI
 
$q = new CGI;
 
# programa
 
if ($q->param('OK')) {
 
# area de declaracion y captura
 
$base = $q->param('BASE');
 
$altura = $q->param('ALTURA');
 
# area de operaciones
 
$area = $base * $altura / 2;
 
# area de despliegue
 
$q->param('AREA',$area);
 
};
 
# mandando servidor los encabezados de la pagina html
 
print $q->header;
 
print $q->start_html({-title=>'PROGRAMA1.PL'});
 
# mandando textos html y query puede usar cualquier tag html
 
print $q->h3("MI PRIMER PERL CGI");
 
print $q->hr();
 
# creando una forma o ventana
 
print $q->startform();
 
# agregando los objetos HTML para resolver problema
 
print "BASE : ";
 
print $q->textfield('BASE','0', 5);
 
print $q->br();
 
print $q->b("ALTURA :");
 
print $q->textfield('ALTURA', '', 5);
 
print $q->br();
 
# creando un submit button
 
print $q->submit('OK');
 
print $q->b("AREA :");
 
print $q->textfield('AREA','',5);
 
# cerrando la forma
 
print $q->endform();
 
#cerrando html
 
print $q->hr();
 
print $q->end_html;

CAMPO DE APLICACIÓN
Perl significa Practical Extraction and Report Language, algo así como lenguaje práctico
de extracción y de informes. Es un lenguaje creado por Larry Wall (quien, porcierto, es
uno de los net.gods más conocidos en la actualidad) con el objetivo principal de
simplificar las tareas de administración de un sistema UNIX.
Aplicaciones del lenguaje Perl  Prácticamente, sirve para todo. Todas las tareas de
administración de UNIX se pueden simplificar con un programa en Perl. Se usa también
para tratamiento y generación de ficheros de texto. También hay proyectos completos y
complejos escritos en Perl, pero son los menos.

PASCAL

CLASIFICACION

CAMPO DE APLICACIÓN
Las primeras versiones del compilador de Pascal, entre ellas la más distribuida
fue UCSD Pascal, traducían el lenguaje en código para una máquina virtual llamada
máquina-P. La gran ventaja de este enfoque es que para tener un compilador de Pascal
en una nueva arquitectura de máquina solo hacía falta reimplementar la máquina-P.
Como consecuencia de esto, solo una pequeña parte del intérprete tenía que ser
reescrita hacia muchas arquitecturas.

MATLAB

CLASIFICACION
Programación orientada a objetos.

CAMPO DE APLICACIÓN

Es una herramienta de software matemático que ofrece un entorno de desarrollo


integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible
para las plataformas Unix, Windows, Mac OS X yGNU/Linux .

Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación


de datos y funciones, la implementación de algoritmos, la creación de interfaces de
usuario (GUI) y la comunicación con programas en otros lenguajes y con otros
dispositivos hardware
F#

CLASIFICACION
Programación imperativa o procedural.

Programación orientada a objetos.

Programación funcional.

PALABRAS RESERVADAS
abstract and as Asser base begin class defau delega do don
t lt te e

downca downt elif Else end excepti extern false finally for
st o on

Fun functio if In inherit inline interfa intern lazy let


n ce al

match memb modul Mutabl namespa new null of open or


er e e ce

overrid private public Rec return static struct then to


e

true try type upcast use val void when while wit yield
h

TIPOS DE DATOS
F# es un lenguaje fuertemente tipado, aunque no lo parezca. Y por supuesto, al ser un
lenguaje .NET soporta los tipos de datos .NET.

La cosa es que F# deduce el tipo de dato sobre el que se está trabajando, por lo que la
mayoría de las veces no es necesario especificar el tipo de dato. Sin embargo, cuando
queremos mayor legibilidad o cuando puede haber ambigüedad, podemos declarar
valores como explícitos agregando unos dobles puntos seguidos del tipo de dato:

#light
let num_i (a : int) =
printfn "Valor entero: %i" a
()
let num_f (a : float) =
printfn "Valor flotante: %f" a
()
let num_s (a : string) =
printfn "Valor texto: \"%s\"" a
()
let main =
do num_i 5
do num_f 5.0
do num_s "5"
do main

Y así en general. Por cierto que los tipos de datos son los estándares de .NET. Las listas
son el tipo de dato preferido, por cierto. Y aparte de eso, están las tuplas --ya
explicadas-- y los registros.

CODIFICACION
Fibonacci. Una sucesión infinita, en la que sus dos primeros términos eran 0 y 1, y el
resto se calculaba como la suma de los dos anteriores: Xi = X(i-1)+X(i-2). Por
ejemplo, los 10 primeros términos de la sucesión serían: 0, 1, 1, 2, 3, 5, 8, 13, 21,
34…

F#: 
let rec fib n = if n < 2 then 1 
else fib (n-2) + fib(n-1) 
Ruby: 
x1,x2 = 0,1; 0.upto(size) 
{puts x1; x1 += x2; x1,x2 = x2,x1} 

C# (2.0): 
static int Fibonacci (int x) 

    if (x <= 1) 
       return 1; 
    return Fibonacci (x-1) + Fibonacci (x-2); 

C#(3.5): 
Func<INT , int> fib = null; 
fib = n => n > 1 ? fib(n - 1) + fib(n - 2) : n; 
brainfuck: 
>++++++++++>+>+[ 
    [+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[ 
        [-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<- 
            [>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>> 
    ]<<< 
]

CAMPO DE APLICACIÓN
F# es un lenguaje fuertemente tipado que utiliza inferencia de tipos por lo que los tipos
no necesitan estar declarados explícitamente por el programador; estos serán
deducidos por el compilador durante el proceso de compilación. No obstante, F#
también permite la declaración explícita de tipos de datos. Por ser un lenguaje .NET, F#
soporta los objetos y tipos de .NET. F# permite programar de una manera que se
asemeja más a como pensamos.

Por ejemplo: en la cafetería para pedir un café, nosotros generalmente no le decimos al


mesero exactamente los pasos para hacer el café, sólo pedimos un café con ciertas
características. Esto permite que tengamos menos espacio para cometer errores,
porque simplemente escribimos menos código.
PL/SQL

CLASIFICACION
Programación imperativa o procedural.

CAMPO DE APLICACIÓN
PL/SQL soportara todas las consultas, ya que la manipulación de datos que se usa es la
misma que en SQL, incluyendo nuevas características:

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

El lenguaje PL/SQL está incorporado en:

 Servidor de la base de datos.

Herramientas de Oracle (Forms, Reports,...).

CLASIFICACION
Programación imperativa o procedural.

Programación orientada a objetos.

Programación funcional.

PALABRAS RESERVADAS
sucess: Se ejecutará cuando se salga con éxito (sin excepción.)

failure: Se ejecutará cuando se salga con error (con una excepción.)

exit: Se ejecutará cuando se salga del ámbito en cualquier caso (éxito o error.)

static import

public privatedebug
static if

static assert

foreach y foreach_reverse

TIPOS DE DATOS

CODIFICACION
// En D, al ser un ejemplo más digno, además así no hay que escribir dos ficheros:

class Persona {
public:
this(string nombrearg, string apellidosarg) {
nombre = nombrearg;
apellidos = apellidosarg;
}

string nombre;
string apellidos;
}

// Usaremos esto como:


Persona juan = new Persona("Juan", "Alvarez Martinez");
juan.nombre = "Juanjo";
juan.apellidos = "Alvarez Martinez Torres Jimenez";
writefln("Nombre: ", juan.nombre);
writefln("Apellidos: ", juan.apellidos);

CAMPO DE APLICACIÓN
La clasificación del lenguaje de programación D sería: lenguaje compilado a código
nativo (con compilación opcional a .NET como C#), orientado a objetos pero
permitiendo programar con funciones libres y clases ligeras (structs), con plantillas y
mixins (que permiten la programación genérica) y con posibilidad de acceso a bajo
nivel.
LISP

CLASIFICACION
Programación orientada a objetos.

Programación funcional.

PALABRAS RESERVADAS
 car
 Devuelve el primer elemento de una lista (car lista)
 cdr
 Devuelve la lista sin su primer elemento
 cond
 La palabra cond ejecuta un flujo de control dependiendo de la condición si es
cierta o no. Es algo parecido al switch de C  /C++  , Java  , C# .NET  , etc..
pero con la diferencia que en este caso lo que se pone en los case son
condiciones lógicas y no constantes.
 cons
 Añade al principio de una lista dada un elemento
 defun
 Define una función con un nombre el cual será llamado mediante el comando
(nombre-funcion args) y que tiene como argumentos una lista de variables. El
cuerpo es una lista que define qué hace la función y es ésta la que ejecuta la
acción.
 endp
 Cierto (T, de true) si la lista está vacía, y nil (sin valor) en caso contrario
 eq
 Se utiliza eq para saber si dos átomos son iguales, independientemente de la
referencia.
 equal
 Es utilizado equal para saber si dos listas son iguales, independientemente de la
referencia.
 list
 Construye una lista a partir de sus elementos
 quote
 La función quote evita la evaluación de su argumento.

TIPOS DE DATOS
Los tipos de datos originales son los ÁTOMOS y las LISTAS. Los ÁTOMOS y las LISTAS
son mutuamente excluyentes: un objeto LISP es lo uno o lo otro. Con una excepción: la
lista vacía o NIL, que estudiaremos más adelante. Las listas se construyen
recursivamente a partir de átomos y/o listas.

Ejemplos:

ÁTOMOS LISTAS
A ()
Juan (juan)
45 (a juan 45 z5mn)
z5mn ((juan 45) a ((z5mn)))
AutoLISP y Visual LISP utilizan además otros tipos de datos que estudiaremos más
adelante y que resultan necesarios para la gestión de los dibujos en el entorno
AutoCAD.

Tanto los átomos como las listas son expresiones válidas LISP que el intérprete lee y
evalúa. Las reglas para la evaluación de ambos tipos de objetos se describen a
continuación:

ÁTOMOS
Los átomos son las expresiones LISP más elementales. Siempre tienen un nombre
constituido por una secuencia de caracteres y por ello se asemejan a las palabras de un
lenguaje. Los nombres de átomos se separan de otras expresiones mediante espacios
en blanco, paréntesis o cambios de línea. Un átomo no es divisible. Como norma
general, todos los elementos que no sean una lista se consideran átomos. Al recibir un
átomo, el evaluador lisp intenta determinar su valor.

LISTAS

El nombre LISP viene de LISt Processing (Procesamiento de Listas), indicando el


mecanismo fundamental sobre el que se desarrolla el lenguaje. Las listas LISP son
grupos de valores relacionados, separados por espacios e incluidos entre paréntesis
redondos "(" y ")". En LISP, el orden de los elementos incluidos en una lista es
significativo. En esto se distingue el concepto de lista del concepto de conjunto, en el
que el ordenamiento de los términos no tiene relevancia. Otra diferencia entre listas y
conjuntos reside en que en una lista pueden haber términos repetidos, mientras que en
un conjunto cada término ocurre una sóla vez.

Listas de un nivel

Listas anidadas

La lista vacía

CODIFICACION
Lenguaje Lisp el cual convierte los números introducidos a números Romanos.
CODIGO:
(defun romano ()
(let ((A nil))
(loop
(cond
;; Regla (a) 
((null A) (format t "Teclea un numero entero: " ) (setq A (read)))
;; Regla (b) 

((and (not (null A)) (> A 100))

(format t "Numero demasiado grande" ) (setq A nil))

;;Regla (c)
((and (not (null A)) (>= A 40) (<= A 49) )
(prin1 'xL) (setq A (- A 40)) )
;;Regla (d)
((and (not (null A)) (>= A 49) (<= A 89) )
(prin1 'l) (setq A (- A 50)) )
;;Regla (d)
((and (not (null A)) ( = A 100) (>= a 100))
(prin1 'c) (setq A (- A 100)) )
;;Regla (e)
((and (not (null A)) (>= A 89) (<= A 100) )
(prin1 'XC) (setq A (- A 90)) )
;; Regla (f) 

((and (not (null A)) (<= A 100) (>= A 10))


(prin1 'X) (setq A (- A 10)) )
;; Regla (g)
((and (not (null A)) (= A 9))
(prin1 'ix) (setq A 0) )
;; Regla (h) 
((and (not (null A)) (>= A 5) (<= 10))
(prin1 'v) (setq A (- A 5)) )
;; Regla (i) 
((and (not (null A)) (= A 4))
(prin1 'iv) (setq A 0) )
;; Regla (j) 
((and (not (null A)) (<= A 3) (>= A 1))
(prin1 'i) (setq A (1- A)) )
;; Regla (k) 
((zerop a) (setq a nil) (terpri))
))))

CAMPO DE APLICACIÓN
Lisp es un lenguaje de programación usado en el mundo de la inteligencia artificial. A
diferencia de otros lenguajes de programación, en Lisp, a pesar de ser un lenguaje con
una cierta antigüedad, no es un lenguaje del que se disponga de mucha
documentación, de hecho, casi toda la documentación disponible esta en inglés. Hago
uso de este medio para poder traducir a mi idioma, el castellano.

Lisp se diferencia de otros lenguajes, en que la forma de entender la programación no


es la clásica que todo el mundo suele manejar, es decir, la forma de programación es
totalmente declarativa y no procedimental como en el caso de los famosos lenguajes de
programación C  /C++  , Java  , C# .NET  , ASP  , PHP  , etc.

DELPHI/OBJECT PASCAL

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

LOGO

CLASIFICACION
Programación imperativa y funcional

PALABRAS RESERVADAS
 AVANZA (AV)
Sirve para desplazar el cursor una determinada longitud que debe de especificarse a
continuación de AVANZA o de AV.
 GIRADERECHA (GD) Y GIRAIZQUIERDA (GI)
Sirven para cambiar la orientación del cursor; el parámetro que acompaña a la primitiva
será el número de grados de giro y tendrá que ir separado mediante un espacio de la
primitiva.
 RETROCEDE (RE)
 Hace retroceder el cursor el número de unidades que le indique el parámetro que
venga a continuación.
 BORRAPANTALLA (BP)
Pone la pantalla en blanco y vuelve a llevar el cursor a su posición y su orientación
inicial.
 BORRATEXTO (BT)
Borra todo el código escrito en el área de comandos.
 SUBELAPIZ (SL)
Sirve para avanzar sin que el rastro quede marcado.
 BAJALAPIZ (BL)
Al avanzar el rastro deja marca; es la opción que está seleccionada por defecto si no
hemos utilizado SL.
 CIRCLE 
Dibuja un círculo; debe ir acompañada de un parámetro que indique el valor del radio.

TIPOS DE DATOS

Las variables son datos, numéricos o de texto, que pueden tomar diferentes valores. A


las variables se les asigna un valor mediante la primitiva HAZ. Para que el programa las
identifique como variables, su nombre debe ir precedido de comillas.
Una vez que le hemos asignado un valor, para utilizarla escribiremos su nombre
precedido de dos puntos: 

AV :numero

Por lo tanto, se emplean las comillas para definir la variable y los dos puntos para
leerla.

Si la variable es de texto, se define su valor introduciéndolo entre corchetes:

HAZ "nombre [Pablo]

De esta forma nos escribirá en la pantalla el texto de la variable, como aparecía en la


imagen anterior:

ROTULA :nombre
CODIFICACION
Crear un procedimiento

Ejercicio 1: Hola mundo

Por ejemplo, crea un procedimiento llamado tax que escriba el mensaje "Hola, mundo"


en la ventana de trabajo.

para tax

escribe [Hola, mundo]

fin
Invoca ahora el procedimiento que has creado, escribiendo en la línea de órdenes de la
ventana de trabajo la palabra tax. ¿Funciona? Ten en cuenta que los nombres de los
procedimientos son totalmente arbitrarios. Puedes ponerle a un procedimiento cualquier
nombre que se te ocurra, excepto el nombre de una primitiva.

Modificar un procedimiento

Ejercicio 2: escribe dos frases

Modifica el procedimiento tax de forma que escriba el mensaje "Hola, mundo" y en la


siguiente línea "¿Qué tal va todo?" en la pantalla de trabajo. Para ello abre el editor y
añade otra línea:

Archivo → editar → tax

para tax

escribe [Hola, mundo]

escribe [¿Qué tal va todo?]

fin
Invoca de nuevo el procedimiento tax y comprueba que los cambios que has
introducido se ejecutan correctamente. ¿Lo ves? Esta es la forma más sencilla de
modificar o mejorar un procedimiento ya escrito.

CAMPO DE APLICACIÓN
Originalmente, el lenguaje Logo estaba destinado a controlar el movimiento de un
vehículo robotizado, con aspecto de tortuga, controlado desde un ordenador. En la
actualidad, el icono de la tortuga se ha sustituido por un triángulo que se mueve en la
pantalla del ordenador.

SAS

CLASIFICACION
Programación imperativa o procedural.

CAMPO DE APLICACIÓN
Base SAS® proporciona un entorno de software escalable e integrado, diseñado
especialmente para el acceso, transformación y presentación de reportes de datos.
Incluye un lenguaje de programación de cuarta generación, programas listos para ser
usados para manipulación de datos, almacenamiento y recuperación de información,
estadística descriptiva y creación de reportes, y una poderosa función de macros que
reduce el tiempo de programación y los problemas de mantenimiento.

POSTSCRIPT

CLASIFICACION
Otros

CAMPO DE APLICACIÓN
Es un lenguaje de descripción de páginas (en inglés PDL, page description language),
utilizado en muchas impresoras y, de manera usual, como formato de transporte de
archivos gráficos en talleres de impresión profesional.

ASSEMBLY
CLASIFICACION
Programación imperativa o procedural.

CAMPO DE APLICACIÓN
Es un lenguaje de programación de bajo nivel
paralos computadores, microprocesadores, microcontroladores y otros circuitos
integrados programables. Implementa una representación simbólica de los códigos de
máquina binarios y otras constantes necesarias para programar una arquitectura dada
de CPU y constituye la representación más directa del código máquina específico para
cada arquitectura legible por un programador. Esta representación es usualmente
definida por el fabricante de hardware, y está basada en los mnemónicos que
simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador,
las posiciones de memoria y otras características del lenguaje. Un lenguaje
ensamblador es por lo tanto específico de cierta arquitectura de computador física (o
virtual).

PL/I

CLASIFICACION
Programación imperativa o procedural.

CAMPO DE APLICACIÓN
PL/I es un lenguaje procedural, imprescindible equipo de programación
diseñado para aplicaciones de programación de sistemas científicos, de
ingeniería y de negocios. Ha sido utilizado por diversas organizaciones
académicas, comerciales e industriales desde que se introdujo en la década de
1960, y continúa siendo utilizada activamente a partir de 2011.

Dominios principales PL/de I son el procesamiento de datos, cálculo numérico,


la computación científica, y la programación de sistemas, sino que admite la
recursividad, la programación estructurada, vinculada estructura de manejo de
datos, de punto fijo, punto flotante, complejos carácter manejo de cadenas, y
manejo de cadena de bits. 

ABAP

CLASIFICACION
Orientado a objetos, estructurado, imperativa

CAMPO DE APLICACIÓN
Como en otros lenguajes de programación, un programa ABAP no es simplemente una
unidad ejecutable o una biblioteca, sino que proporciona código ejecutable para otros
programas no ejecutado independientemente.

ABAP distingue entre dos tipos de programas:

 Informes
 Module pool

Los informes siguen unos modelos de programación relativamente simple, donde el


usuario introduce una serie de parámetros y el programa los usa para producir un
informe en forma de lista interactiva. El término informe puede llevar a equívoco puesto
que los informes pueden ser diseñados para modificar datos, la razón por la que estos
programas se llaman informes es la “lista-orientada” que estos producen como salida.

COBOL

CLASIFICACION
Orientado a objetos e imperativa o procedural

CAMPO DE APLICACIÓN
Este lenguaje se diseñó para desarrollar aplicaciones de negocios, típicamente
orientadas a archivos. No fue ideado para crear aplicaciones para sistemas, es decir, no
podríamos, por ejemplo, crear un sistema operativo o un compilador utilizando COBOL.

FORTRAN

CLASIFICACION
Programación imperativa o procedural.

CAMPO DE APLICACIÓN
Usado para aplicaciones científicas y de ingeniería, el FORTRAN vino a dominar esta
área de la programación desde el principio y ha estado en uso continuo por más de
medio siglo en áreas de cómputo intensivo tales como la predicción numérica del
tiempo, análisis de elementos finitos, dinámica de fluidos computacional (CFD), física
computacional y química computacional. Es uno de los lenguajes más populares en el
área de la computación de alto rendimiento y es el lenguaje usado para programas que
evalúan el desempeño (benchmark) y el ranking de los supercomputadores más rápidos
del mundo

LUA

CLASIFICACION
Programación imperativa o procedural.

Programación orientada a objetos.

Programación funcional.

PALABRAS RESERVADAS
and break do else elseif
end false for function if
in local nil not or
repeat return then true until while

TIPO DE DATOS

Las variables almacenan valores. Estos valores pueden ser de la clase diferente. Ellos
pueden ser números, caracteres (cuerdas), condiciones (verdadero o falso) etc.
Allí existen:

 Nil    (nada) (vacío) (no existiendo)
 números
 charcacters (cartas, palabras, etc.)
 condiciones (verdaderas/falsas) (sí/no) (1/0)
 funciones (como  caso especial    de un bloque)
Dos otros existen, pero arriba mencionado debería ser bastante para este
momento.

CODIFICACION
resultat = type (5)
                --> resultat == "number"
    
    meineVar = "es una frase"

    resultat = type ( meineVar )
                --> resultat == "string"

CAMPO DE APLICACIÓN
Lua ha sido usado para procesar datos de entrada a sistemas complejos, configurar
aplicaciones, controlar hardware y muchos otras cosas.
En el gestor de ventanas Ion es posible utilizar Lua para personalizar la apariencia y
extender su funcionalidad.

Lenguages como ActionScript, Java, Lua y otros, son empleados en distintos sistemas


operativos, lo cual consigue un ahorro de costes, al simplificar el trabajo de desarrollo
de un nuevo programa de software, al añadirlos como partes "prefabricadas" que
incluso al adaptar o portar el programa a nuevos usos, por ejemplo de plataformas de
videoconsolas a sistemas operativos como Android y otros, no necesitan ser
modificados o mínimamente, convirtiéndolo en un programa de software de calidad
nuevo, a un coste de desarrollo muy reducido.

También Lua es uno de los lenguajes de programación más utilizados


para homebrews de la consola PSP de Sony debido a su sencillez. Van desde
aplicaciones para añadir complementos u otros programas fácilmente a la consola
a entornos de ventanas excelentes y videojuegos muy completos.

Por otro lado es utilizado para los productos de la compañía canadiense desarrolladora
de software Indigo Rose, en AutoPlay Media Studio; estos programas no fueron
desarrollados en Lua, sino que utilizan Lua para generar y crear scripts, ya sea por un
asistente o por la pericia del programador.

LADDER LOGIC

CLASIFICACION
Lógico

PALABRAS RESERVADAS
Símbolo Nombre Descripción

Contacto Se activa cuando hay un uno lógico en el elemento que representa;


NA esto es, una entrada (para captar información del proceso a controlar),
una variable interna o un bit de sistema.

Bobina Se activa cuando la combinación que hay a su entrada (izquierda) da


NC un cero lógico. Su activación equivale a decir que tiene un cero lógico.
Su comportamiento es complementario al de la bobina NA.

Bobina Una vez activa (puesta a 1) no se puede desactivar (puesta a 0) si no


SET es por su correspondiente bobina en RESET. Sirve para memorizar
bits y, usada junto con la bobina RESET, dan una enorme potencia en
la programación.

Bobina Permite saltarse instrucciones del programa e ir directamente a la


JUMP etiqueta que se desee. Sirve para realizar subprogramas.

TIPOS DE DATOS
Temporizadores

El temporizador es un elemento que permite poner cuentas de tiempo con el fin de


activar bobinas pasado un cierto tiempo desde la activación.

Entrada Enable (E): Tiene que estar activa (a 1 lógico) en todo momento durante el
intervalo de tiempo, ya que si se desactiva (puesta a cero lógico) se interrumpe la
cuenta de tibia (puesta a cero temporal).

Contadores

El contador es un elemento capaz de llevar el cómputo de las activaciones de sus


entradas, por lo que resulta adecuado para memorizar sucesos que no tengan que ver
con el tiempo pero que se necesiten realizar un determinado número de veces.

Contador

En la figura de la derecha puede verse el esquema de un contador, Ci, bastante usual,


donde pueden distinguirse las siguientes entradas y salidas:

 Entrada RESET (R): Permite poner a cero el contador cada vez que se activa. Se
suele utilizar al principio de la ejecución asignándole los bits de arranque, de
modo que quede a cero cada vez que se arranca el sistema.
 Entrada PRESET (P). Permite poner la cuenta del contador a un valor
determinado distinto de cero, que previamente se ha programado en Cip.
 Entrada UP (U): Cada vez que se activa produce un incremento en una unidad
de la cuenta que posea en ese momento el contador.
 Entrada DOWN (D): Cada vez que se activa produce un decremento en una
unidad de la cuenta que posea en ese momento el contador.
 Salida FULL (F): Se activa al producirse un desbordamiento del valor del
contador contando en sentido ascendente.
 Salida DONE (D): Se activa cuando el valor del contador se iguala al valor
preestablecido Cip.
 Salida EMPTY (E): Se activa al producirse un desbordamiento del valor del
contador contando en sentido descendente.

Monoestables

Monoestable.

El monoestable es un elemento capaz de mantener activada una salida durante el


tiempo con el que se haya programado, desactivándola automáticamente una vez
concluido dicho tiempo. Una de sus principales ventajas es su sencillez ya que sólo
posee una entrada y una salida como podemos observar en la siguiente figura.

 Entrada START (S): Cuando se activa o se le proporciona un impulso comienza la


cuenta que tiene programada.
 Salida RUNNING (R): Se mantiene activada mientras dura la cuenta y se
desactiva al finalizarla. Al igual que con el temporizador, para programar la
cuenta hay que introducir los valores de Mip y Mib.
CODIFICACION

CAMPO DE APLICACIÓN
El LADDER, también denominado lenguaje de contactos o en escalera, es un lenguaje
de programación gráfico muy popular dentro de los autómatas programables debido a
que está basado en los esquemas eléctricos de control clásicos. De este modo, con los
conocimientos que todo técnico eléctrico posee, es muy fácil adaptarse a la
programación en este tipo de lenguaje.

C SHELL

CLASIFICACION
Orientado a objetos

CAMPO DE APLICACIÓN
C Shell es un lenguaje de programación, conocido también como csh y que fue
desarrollado por Bill Joy en la Universidad de Berkeley, California. Se le considera más
idóneo para programadores que Bourne Shell (sh), además de hacer reflejar que la
informática se estaba haciendo más interactiva. Hoy día, el original C Shell, no goza de
un amplio uso en Unix; ha sido superado por otros Shells [1], como Tenex C Shell
(tcsh) basado en el código original C Shell, pero incorporando finalización de nombres a
ficheros, y edición a comandos de línea, comparables a Korn Shell (Ksh), y el GNU
Bourne-Again Shell (Bash).

TCL

CLASIFICACION
POO ,funcional, procedural, programación dirigida por eventos

PALABRAS RESERVADAS
Return, proc,, var, set, if, switch, while, foreach, for

TIPO DE DATOS
Las variables no tienen tipos explícitamente. Sin embargo podemos definir seis tipos

 Booleanas : 0/no/off (en caso de ser falso) y 1/yes/on/ (en caso de ser
verdadero) o un número diferente de 0
 Números: 1 0 3.14 1.e-10, se tratan como cadenas, salvo en expresiones
aritméticas en que se convierte primero en binario.
 Cadenas de caracteres : Bienvenido, "Madame De Labas", 32 , {z 3.14}
 Listas : de booleanas, nombres, cadenas o listas (pudiendo anidar listas)
 Diccionarios: Son pares clave-valor, similares a las tablas asociativas. Pueden
contener cualquier tipo de dato en el valor. Este tipo de variables se incluye desde
Tcl 8.5 en adelante.
 Tablas asociativas: T(clave) M(2,3) que puedan contener los 5 tipos anteriores,
incluso mezclados.
Las cinco primeros tipos son llamados tipos escalares, así que pueden ser pasados por
valor y regresar al llamar a un procedimiento. Los tipos de escalar se convierten
automáticamente en el tipo adecuado, por ejemplo, una cadena puede ser una lista
como se ve a continuación utilizando una consola tcl:

% set frutas albaricoque


% puts $frutas
albaricoque
% set frutas "pomelo naranja banana"
pomelo naranja banana
% puts [lindex $frutas end]
banana
% puts [lindex $frutas 1]
naranja

CODIFICACION
 Factorial (estilo de programación funcional):
proc ! x {expr {$x<2? 1: $x*[! [incr x -1]]}}

 Hacer la suma de una lista de números


Con un bucle foreach que sigue la lista :
set numeros {10 9 8 7 6 5 4 3 2 1}
set suma 0
foreach i $numeros {
set suma [expr {$suma + $i}]
}
O más compacto utilizando el comando join en lugar del lazo con foreach :

set suma [expr [join $numeros +]]

 Un operador es un caracter como cualquier otro, así que puede ser almacenado en una
variable:
set numeros {10 9 8 7 6 5 4 3 2 1}
foreach opr {+ * - /} {
set resultado [expr [join $numeros $opr]]
puts "El resultado para el operador $opr es $resultado"
}

 Descarga de una página HTML


package require http
set tok [http::geturl http://mini.net/tcl/540]
puts [http::data $tok]
http::cleanup $tok

CAMPO DE APLICACIÓN
Tcl  ó Tool Command Language" o lenguaje de herramientas de comando, es un
lenguaje de script creado por John Ousterhout, que ha sido concebido con una sintaxis
sencilla para facilitarse su aprendizaje, sin ir en desmedro de la funcionalidad y
expresividad.

Se utiliza principalmente para el desarrollo rápido de prototipos, aplicaciones "script",


interfaces gráficas y pruebas. La combinación de Tcl con Tk (del inglés Tool Kit) es
conocida como Tcl/Tk, y se utiliza para la creación de interfaces gráficas.

Tcl es un lenguaje interpretado, y su código puede ser creado y modificado


dinámicamente. Sus reglas sintácticas son extremadamente simples y posee reglas de
alcance dinámico. Permite escribir código fácil de mantener. Los "scripts" Tcl son a
menudo más compactos y legibles que los programas funcionalmente equivalentes en
otros lenguajes de programación. Es un lenguaje multiplataforma, con intérpretes que
se ejecutan sobre Windows, Linux, UNIX, MacOS y OSX e incluso microprocesadores
PIC.
Todos los elementos de un programa son comandos, incluyendo las estructuras del
lenguaje. Dichos comandos se escriben en notación polaca y pueden ser redefinidos o
sobreescritos de manera dinámica.

SCALA

CLASIFICACION
Orientada a objetos y funcional

PALABRAS RESERVADAS
class, val, new, case, object, args, etc.

TIPOS DE DATOS
 Inmutablidad: Scala soporta las variables inmutables a través de la palabra
reservada val
 Funciones First Class: Las funciones son ciudadanas de primera clase
 Closures: Se pueden definir y utilizar closures y clases anidadas
 Traversing, Mapping, Filtering, Folding y Reducing: Operaciones que no
producen efectos secundarios en las colecciones
 Pattern Matching: Pieza fundamental en los lenguajes funcionales
 Partial Functions: Expresiones en las que no todos los argumentos definidos en
una función son pasados a la función
 Currying: Convierte una función que toma múltiples argumentos en una cadena
de funciones que toman un único argumento
 Implicit: Algunas veces es necesario usar un tipo en un contexto diferente pero
similar al tipo real requerido para ello se usa la palabra reservada implicit
 Lazy vals: Inicialización vaga de variables

CODIFICACION

1. object HelloWorld {
2. def main(args: Array[String]) {
3. println("Hello world!")
4. }
5. }
CAMPO DE APLICACIÓN
Scala es un lenguaje de programación multi-paradigma diseñado para expresar
patrones comunes de programación en forma concisa, elegante y con tipos seguros.
Integra sutilmente características de lenguajes funcionales y orientados a objetos. La
implementación actual corre en lamáquina virtual de Java y es compatible con las
aplicaciones Java existentes.

RPG

CLASIFICACION
Orientado a objetos

CAMPO DE APLICACION
El lenguaje de programación RPG es un lenguaje de programación desarrollado
por IBM en 1964 y diseñado para generar informes comerciales o de negocios. Sus
siglas en inglés significanReport Program Generator.

MAX/MSP
GO

CLASIFICACION
Concurrente, imperativo, estructurado

CAMPO DE APLICACIÓN
Este lenguaje permite la programación orientada a la concurrencia o modelo actor, con
lo que, la orientación a objetos, realmente, no es una característica que se eche en
falta, ni mucho menos, siempre teniendo presente que el paradigma de programación
al que se orienta no son los objetos, en su núcleo central, sino los procesos (o hilos).

OPENEDGE ABL

CLASIFICACION
Orientado a objetos
CAMPO DE APLICACIÓN
Es un lenguaje de desarrollo de aplicaciones de negocio creada y mantenida
por Progress Software Corporation (PSC).

ACTIONSCRIPT
ML
ADA

CLASIFICACION
Orientado a objetos

CAMPO DE APLICACIÓN
Fue diseñado con la seguridad en mente y con una filosofía orientada a la reducción de
errores comunes y difíciles de descubrir. Para ello se basa en un tipado muy fuerte y en

Chequeos en tiempo de ejecución (desactivables en beneficio del rendimiento). La


sincronización de tareas se realiza mediante la primitiva rendezvous.

COMMON LISP
CT
HASKELL
R
JSCRIPT.NET
EMACS LIPS

PROLOG

CLASIFICACION
Lógico
CAMPO DE APLICACIÓN

CODIFICACION

padrede('juan', 'maria'). % juan es padre de maría

padrede('pablo', 'juan'). % pablo es padre de juan

padrede('pablo', 'marcela').

padrede('carlos', 'debora').

hijode(A,B) :- padrede(B,A).

abuelode(A,B) :- padrede(A,C), padrede(C,B).

hermanode(A,B) :- padrede(C,A) , padrede(C,B), A \== B.

familiarde(A,B) :- padrede(A,B).

familiarde(A,B) :- hijode(A,B).

familiarde(A,B) :- hermanode(A,B).

?- hermanode('juan', 'marcela').

yes

?- hermanode('carlos', 'juan').

no

?- abuelode('pablo', 'maria').

yes

?- abuelode('maria', 'pablo').
no

OPENEDGE ABL
ACTIONSCRIPT
ML
ADA
COMMON LISP
CT
HASKELL
MODULA-3
SCHEME
S-PLUS

BIBLIOGRAFIA

http://www.monografias.com/trabajos10/visual/visual.shtml

http://es.wikipedia.org/wiki/Python

http://www.desarrolloweb.com/articulos/1325.php

http://sisinfo.itc.mx/ITC-APIRGG/Fundamentos_PHP/JavaScript/cap2.htm

http://msdn.microsoft.com/es-es/library/0779sbks(v=vs.94).aspx

http://trabajodeprogramacionperl.blogspot.mx/p/que-es-y-para-que-sirve.html

http://www.aulaclic.es/sqlserver/t_2_1.htm

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ruby
http://www.programacionfacil.com/perl_script/palabras_reservadas

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Perl/Tipos_de_datos

https://sites.google.com/site/fernandoagomezf/programacion-en-f/El-lenguaje-F/el-
lenguaje-f/palabras-reservadas

http://sobrelisp.blogspot.mx/2012/06/tipos-de-datos-en-lisp-en-lisptenemos.html

http://es.wikibooks.org/wiki/Lenguaje_Delphi

También podría gustarte