Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Dia Positi Vas
Dia Positi Vas
Estudio de los lenguajes de programacin desde el punto de vista de las reas de aplicacin
1.1.2
Lenguaje Humano Muy alto Alto Medio Bajo Muy bajo Lenguaje Mquina
2005 Alfredo Gutirrez Hdez. 2
1.1.3
Estudio de los lenguajes de programacin desde el punto de vista de los paradigmas de programacin
Paradigma: Logros cientficos universalmente reconocidos que durante un tiempo proporcionan problemas y soluciones modelo para una comunidad de profesionales.
Imperativos
Declarativos
1.1.3
Estudio de los lenguajes de programacin desde el punto de vista de los paradigmas de programacin
Imperativos - Cambios de estado hechos a la memoria - Algoritmos Estructurado en bloques - Subrutinas - Datos comunes - mbitos anidados Basados en objetos - Objeto: grupo de procedimientos que comparten un estado
Programacin distribuida - Trabajo de muchos programadores en un solo programa de forma simultnea comunicndose a travs del paso de mensajes
1.1.3
Estudio de los lenguajes de programacin desde el punto de vista de los paradigmas de programacin
Declarativos - Se enfocan ms en lo que se quiere hacer que en cmo hacerlo - El intrprete o compilador administra recursos en lugar del programador Programacin Lgica - Obtencin de nuevos hechos a partir de hechos conocidos - Un programa se compone de: Serie de axiomas o hechos Reglas de inferencia Teorema o cuestin por demostrar Programacin funcional - Todo opera a travs de funciones - Uniformidad funcional - No hay asignaciones globales - El programa mismo es una funcin Lenguajes para bases de datos - Persistencia - Control de cambios
1.2
Lenguaje de programacin
Gramtica: ciencia que estudia o regula al lenguaje Estructura lexicogrfica: la estructura de los tokens Token: palabra vlida en un lenguaje
Alfabeto (conjunto de smbolos) Lenguaje Reglas para formar palabras Reglas para formar declaraciones
1.2
Lenguaje de programacin
Lenguaje formal: la forma o sintaxis de las palabras vlidas en un lenguaje sin importar su significado Definicin de lenguajes formales: 1. Alfabeto de smbolos individuales 2. Un conjunto de reglas P para determinar cuales cadenas o palabras de son vlidas en L las reglas de produccin tiene la forma:
Gramtica estructurada en frases G=(, N, P, Inicio) = Conjunto de smbolos terminales N = Conjunto de smbolos no terminales P = Conjunto de reglas de produccin Inicio = Smbolo de inicio
1.3
Descripciones bien definidas - BNF y EBNF - Semntica Comprobabilidad Confiabilidad Traduccin rpida Cdigo objeto eficiente Ortogonalidad Generalidad Consistencia y notaciones comunes Uniformidad Subconjuntos Extensibilidad Transportabilidad
1.4.1.1
Jerarqua de Chomsky
Tipo 0: Lenguajes recursivamente enumerables, son reconocidos por mquinas de Turing Tipo 1: Lenguajes sensibles al contexto, son reconocidos autmatas lineales limitados Tipo 2: Lenguajes libres de contexto, son reconocidos por autmatas descendentes Tipo 3: Lenguajes regulares, son reconocidos por autmatas finitos
1.4.1.2
Extended Backus Naur Form (EBNF) [algo] {algo} (algo) algo opcional (una vez) opcional (una o ms veces) agrupacin smbolo terminal
10
1.4.1.3
11
1.4.1.4
Diagramas de Sintaxis
No Terminal
Terminal
Flujo
12
1.4.1.5.1
Autmatas Finitos
Gramticas Regulares G=(, N, P, Inicio)
Las gramticas regulares son gramticas estructuradas por frases, se componen de un conjunto de smbolos terminales (), un conjunto de smbolos no terminales (N) , un conjunto de reglas de produccin (P), y un smbolo de inicio (Inicio) Las reglas de produccin tienen la forma: Donde: A, B N y a Aa A aB
13
1.4.1.5.1
Autmatas Finitos
Esta mquina terica aceptar palabras vlidas y rechazar cadenas invlidas de forma automtica en un nmero finito de pasos. Dada la cadena a procesar, se procede de forma mecnica en cada uno de los smbolos de izquierda a derecha. De manea formal, un autmata finito es una 5-tupla (S, , T, Inicio, FS) Donde: S = Un conjunto de estados = Un alfabeto T = Un conjunto de transiciones Inicio = El estado inicial de la mquina FS = Un conjunto de estados finales
a .. z a .. z 0 .. 9
1
otra cosa
Ejemplo: S = { 1, 2, 3, 4 } = { a, .., z, 0, .., 9, # } T = { 1. (1, a .. z)2 2. (1, 0 .. 9 | # oc) 4 3. (2, a .. z | 0 .. 9) 2 4. (2, #) 3) 5. (2, oc 4) } Inicio = 1 FS = { 3, 4 }
a .. z 1 2 2 0 .. 9 4 2 # 4 3 Other 4 4 -
# 0 .. 9 otra cosa
3 4
14
1.4.1.5.2
Autmatas Descendentes
Gramticas libres de contexto G=(, N, P, Inicio)
Las gramticas libres de contexto son gramticas estructuradas por frases, se componen de un conjunto de smbolos terminales (), un conjunto de smbolos no terminales (N) , un conjunto de reglas de produccin (P), y un smbolo de inicio (Inicio) Las reglas de produccin tienen la forma: Donde: A N y As
s es cualquier cadena de N
1.4.1.5.2
Autmatas Descendentes
Un Autmata descendente puede se definido como un conjunto de reglas para dos cintas: una que contiene una cadena de entrada y la otra para ser empleada como una pila. Formalmente un autmata descendente es una 6-tupla: (, N , Inicio, #, {>, -}, R) Donde: = es el conjunto de smbolos de entrada N = es conjunto de los smbolos de la pila Inicio = es el smbolo de inicio # = es el smbolo de terminacin {>, -} = indica el movimiento de apuntador de lectura R = es el conjunto de reglas del autmata Ejemplo: = { a, b, # } N = { S, a, b, # } R = { 1. [ , S] [ -, aSb ] 2. [ , S] [ -, ab ] 3. [ a, a] [ >, ] 4. [ b, b] [ >, ] 5. [ #, #] xito!
2005 Alfredo Gutirrez Hdez.
Inicio = S
16
1.4.1.5.3
Las gramticas sensibles al contexto son gramticas estructuradas por frases, se componen de un conjunto de smbolos terminales (), un conjunto de smbolos no terminales (N) , un conjunto de reglas de produccin (P), y un smbolo de inicio (Inicio) Las reglas de produccin tienen la forma:
Donde: 1. puede contener ms de un smbolo, al menos uno es no terminal 2. La longitud de es menor o igual que la de Ejemplo: = { a, b } P = { 1. S aSBC 2. S aBC 3. CB BC 4. aB ab 5. bB bb 6. bC bc 7. cC cc } N = { S, B, C } Inicio = S
1.4.1.5.3
LBA = (, , S, SI, SF, P) Donde: = conjunto de smbolos de entrada = conjunto caracteres para escribir sobre le cinta S = conjunto de estados SI = estado inicial de la mquina SF = estado final de la mquina P = conjunto de reglas
18
1.4.1.5.3
Ejemplo: = { a, b, c, # } = { A, B, C, T } S = { 0, 1, 2, 3, 4, 5 } SI = 0 SF = 5
a *
S=0
19
1.4.1.5.4
Mquinas de Turing
Gramticas no restringidas G=(, N, P, Inicio)
Las gramticas recursivamente enumerables son gramticas estructuradas por frases, se componen de un conjunto de smbolos terminales (), un conjunto de smbolos no terminales (N) , un conjunto de reglas de produccin (P), y un smbolo de inicio (Inicio) Las reglas de produccin tienen la forma:
Donde: puede contener ms de un smbolo, al menos uno es no terminal y sin restricciones sobre P = { Ejemplo: = { a, b } N = { S, B, C } Inicio = S 1. S aS | aB 2. B bC 3. C aC | aD 4. D bE 5. E aF | bF 6. F aG | bG 7. G aH | bH 8. H aI | bI 9. I a | b }
20
1.4.1.5.4
Mquinas de Turing
Una Mquina de Turing requiere de seis cosas 1. Un alfabeto de smbolos de entrada 2. Una cinta dividida en celdas que puede ser infinita 3. Una cabeza de lectura / escritura 4. Un alfabeto de smbolos para escribir sobre la cinta 5. Un conjunto de estados 6. Un conjunto de reglas (Estado1, Lee, Escribe, Direccin, Estado2)
MT = (, , S, SI, SF, P) Donde: = conjunto de smbolos de entrada = conjunto caracteres para escribir sobre le cinta S = conjunto de estados SI = estado inicial de la mquina SF = estado final de la mquina P = conjunto de reglas
2005 Alfredo Gutirrez Hdez. 21
1.4.2
22
1.4.3
Proceso de compilacin
Un compilador es un programa que lee un programa escrito en un lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje, el lenguaje objeto En la compilacin se distinguen dos partes: Anlisis, Sntesis. Anlisis: divide al programa fuente en sus elementos y crea una representacin interna del programa fuente. En el anlisis se determinan las operaciones que implica el programa fuente y se registran en un rbol, llamado rbol sintctico, donde cada nodo representa una operacin y los hijos son los argumentos.
En el proceso de compilacin existen otras herramientas involucradas: preprocesador: expande macros, ensamblador: traduce ensamblador a cdigo mquina, cargador/enlazador: localiza bibliotecas y edita los enlaces.
23
1.4.3
Proceso de compilacin
El anlisis consta de tres fases: Anlisis lineal (o lxico) : se lee la cadena de caracteres de izquierda a derecha agrupando componentes lxicos, que son secuencias de caracteres que tienen un significado como agrupacin. Anlisis jerrquico (o sintctico) : en el que los caracteres o componentes lxicos se agrupan jerrquicamente en colecciones anidadas. Anlisis semntico: se realizan comprobaciones para asegurar que los componentes se ajustan de un modo significativo.
24
1.4.3
Proceso de compilacin
25
1.4.3
Proceso de compilacin
Al anlisis lxico. Dada la expresin : posicin := inicial + velocidad * 60 se obtendran los siguientes componentes lxicos: 1. El identificador posicin 2. El smbolo de asignacin := 3. El identificador inicial 4. El smbolo de suma + 5. El identificador velocidad 6. El smbolo de multiplicacin * 7. El nmero 60
26
1.4.3
Proceso de compilacin
En un anlisis de tipo jerquico, los componentes lxicos del programa fuente se agrupan en frases gramaticales que el compilador utiliza para sintetizar la salida. Las frases se representan mediante un rbol de anlisis sintctico. La divisin entre anlisis lxico y anlisis sintctico puede ser arbitraria. Un factor a considerar es si una construccin es inherentemente recursiva o no. Las construcciones lxicas no requieren recursin, mientras que la construcciones sintcticas suelen requerirla. No se requiere recursin para reconocer los identificadores, que se agrupan en una tabla, llamada tabla de smbolos. La fase de anlisis semntico revisa el cdigo fuente para tratar de encontrar errores semnticos y rene informacin sobre los tipos para la fase posterior de generacin de cdigo. Tambin se lleva a cabo la verificacin de tipos. En el anlisis semntico se realizan comprobaciones de los tipo permitidos por un operador; en caso de que no coincidan con los permitidos se generar un error o se realizarn las operaciones de conversin necesarias (coercin).
27
1.4.4
Cargador: Es un programa especial, parte del sistema operativo que tiene como propsito colocar en la memoria las instrucciones y datos de un programa o informacin codificada en lenguaje maquina, para que entonces la computadora pueda procesarla. Las funciones de un cargador son relativamente sencillas y consisten en extraer informacin de algn medio exterior de la memoria (Disco duro, diskette, CD) y colocarlo en celdas sucesivas de la memoria a partir de una celda preespecificada. El cargador realiza la ltima etapa del proceso de traduccin: cargar el programa en memoria donde puede ser ejecutado. Despus de transferir el control al programa cargado por medios manuales o automticos comienza la ejecucin del mismo.
28
1.4.4
Ligador: Es un programa que enlaza todos los programas o mdulos obteniendo lo que denominamos programa ejecutable. Adems incorpora las rutinas de libreras en caso de solicitarlas el propio programa. Para ejecutar el programa, el enlazador obtiene los mdulos objeto de la memoria principal a fin de formar la imagen de programa binario ejecutable. De lo que se trata es de crear una imagen exacta del espacio de direcciones virtual del programa ejecutable dentro del enlazador y colocar todos los mdulos objeto en sus posiciones correctas. El ligado dinmico ofrece algunas ventajas sobre los otros tipos de ligado. Proporciona la posibilidad de cargar las rutinas slo cuando y si se necesitan. SI las subrutinas son grandes o tienen muchas referencias externas, se pueden conseguir ahorros considerables de tiempo y espacio de memoria. De forma similar, supngase que en cualquier ejecucin un programa usa slo pocas de una gran cantidad de subrutinas posibles, pero el nmero exacto de rutinas necesarias no puede predecirse hasta que el programa examina su entrada.
29
2.1
Abstraccin
Abstraccin: condensar un objeto grande a sus partes esenciales, ignorando los detalles. Abstraccin de datos Almacenamiento Tipos de dato abstractos Independencia de datos y ocultamiento de informacin Abstraccin de control Ramificacin Iteracin Recursin Excepciones Abstraccin de procedimiento Funciones y operadores Parmetros Mdulos y TDA (objetos) Ejecucin concurrente
30
2.2.1.1
31
2.2.1.1
Entero BCD Cadena de bits Corto Largo Real Punto fijo Punto flotante Carcter Booleano Apuntador referencias colgantes creacin de basura con o sin signo con o sin signo
32
2.2.1.1
33
2.2.1.2
34
2.2.1.3
Parmetros
Por valor Por referencia Por resultado Por resultado-valor Por nombre
2.2.2
Ligaduras
Ligadura: la asignacin de los atributos de una variable
esttica dinmica
35
2.2.2
36
2.3
Evaluacin expresiones
Notacin de expresiones
Prefija Infija - Precedencias Postfija
37
2.5
Funciones y su evaluacin
Correspondencias Dominio y contradominio Algoritmo Identificador Parmetros Cuerpo Interna Funciones como parmetros Selectiva Condicin
38
2.6
Recursividad
Recursividad: capacidad de una funcin para llamarse (activarse) a s misma de forma directa o indirecta
Recursividad lineal Mximo una llamada recursiva por rama del condicional - Por la cola - No por la cola Recursividad no lineal Ms de una llamada recursiva - En cascada - Anidada
39
2.6
Recursividad
No por la cola: queda pendiente una operacin en cada en cada llamado recursivo. El primer llamado retorna l resultado.
return 120
factorial (5)
n=5 return 24
factorial (4)
n=4 return 6
factorial (3)
n=3 return 2
factorial (2)
n=2 return 1
factorial (1)
n=1
40
2.6
Recursividad
Por la cola: no hay operaciones pendientes. El ltimo llamado retorna el resultado int factorial (int n) { return fact (n, 1); } int fact (int n, int m) { if (n <= 1) return m; else return fact (n 1, n * m); }
factorial (5)
n=5
fact (5, 1)
n = 5, m = 1
fact (4, 5)
n = 4, m = 5
41
2.6
Recursividad
En cascada: Dos o ms llamados recursivos dentro del cuerpo de la funcin
int fibonacci (int n) { if (n <= 1) return 1; else return fibonacci (n 1) + fibonacci (n 2); }
3
8
fib (5)
fib (4)
fib (3)
fib (3)
fib (2)
1 1
fib (2)
fib (1)
fib (2)
1
fib (1)
1
fib (1)
fib (0)
fib (1)
fib (0)
fib (1)
fib (0)
42
2.6
Recursividad
Anidada: El llamado recursivo se tiene como parmetro a la misma funcin invocada
int morris(int n, int m) { if (n == m) return (m + 1); else return morris(n, morris(n - 1, m + 1)); }
mor (6, 0)
6 7 5, 1
mor (6, 6)
5 6
mor (5, 1)
4, 2
mor (5, 5)
4
mor (4, 2)
3, 3
mor (4, 4)
mor (3, 3)
43
3.1.1
ALGOL 60
Pascal
ALGOL 68
CPL
Simula 67
Ada
Modula - 2
BCPL Smalltalk C
C++ Java
44
3.1.1
45
3.1.1
Pascal (Nicklaus Wirth) Objetivos: Proporcionar un lenguaje de enseanza Definir un lenguaje estndar verdadero que fuera barato y fcil de implementar en cualquier computadora Tipificacin de datos fuerte No es ortogonal Para enseanza y experimentacin, no de produccin
ADA (DOD 1983, Jean Ichbiah) Basado en Pascal Programacin en tiempo real Diseado para procesos integrados Organizado por unidades que pueden compilarse en forma separada
46
3.1.1
C (Ritchie y Thompson 70s) Pequeo Portable Tipificacin de datos permisiva Tanto de alto como de bajo nivel Ms eficiente que elegante Cdigo poco legible
47
3.1.2
48
3.1.2
Requerimientos Diseo Codificacin Pruebas Operaciones Modelo de cascada para el ciclo de vida del software
2005 Alfredo Gutirrez Hdez. 49
3.2.1
Simula Centro de cmputo noruego (1961) Propsito: Describir sistemas y programar simulaciones Motivos: Expresar procesos que son permanentes y activos Crear y destruir tales procesos como sea necesario Extender un lenguaje para incluir procesos Proporcionar a los procesos un mecanismo de ejecucin en forma concurrente Agrupar procesos sujetos a los mismos procedimientos en clases
50
3.2.1
Java
Sun Microsystems
Simple Orientado a objetos Distribuido Robusto Seguro Arquitectura neutral Porttil Interpretado Alto desempeo Multihilo Dinmico - Todo es un objeto
51
3.2.2
52
3.3.1
Menor acoplamiento
CPU 1 CPU 2
Mayor acoplamiento
CPU 1 CPU 2
53
3.3.1
Conceptos relacionados: Un CPU, varios procesos = tiempo compartido o ejecucin alternada = multiprocesamiento o ejecucin en paralelo
Varios CPU, varios procesos (uno por CPU) Ejecucin en paralelo y alternada =
multiprogramacin
54
3.3.2
P1
r1
P2 0
r2
0 r+1
r=3
r1
r2
55
3.3.2
f1
t5 f5
t1 f2
t4
t2
f4
t3
f3
3.3.2
Fallos parciales: el mensaje puede ser perdido por la red la respuesta puede perderse el servidor puede fallar antes de enviar la respuesta
57
4.1.1
Prolog
Calmerauer y Roussel
Orientado a programacin lgica Por su lgica fue utilizado para inteligencia artificial Fue considerado como de quinta generacin Se utiliza para: Demostracin de teoremas Diseo de bases de datos relacionales Representacin de conocimientos en sistemas de I.A. Programacin de sistemas expertos Elementos en el lenguaje Hechos Reglas Consultas
58
4.1.2
Caractersticas de lenguaje Prolog 1. Cada parmetro para un procedimiento puede ser tanto de entrada como de salida para cada invocacin, como desee el usuario. 2. Los procedimientos pueden devolver resultados con variables no ligadas, presentando as soluciones parciales o genricas para un problema. 3. Pueden encontrarse soluciones mltiples haciendo uso del retroceso integrado.
59
4.2.1
Lisp
John McCarthy
-- Taller de I.A. en Darmouth (1956) Diseado especialmente para Inteligencia Artificial Caractersticas: Recursin Paralelo por naturaleza Funciones automodificantes Aplicaciones de la I.A. Procesamiento del lenguaje natural Robtica Ingeniera del conocimiento
60
4.3.1
61
4.3.1
Vistas externas
Vista conceptual
Vista de almacenamiento
Vista fsica
Modelos bsicos para la vista conceptual: Modelo jerrquico Modelo de red Modelo relacional Otros modelos: Modelo semntico Modelo orientado a objetos
2005 Alfredo Gutirrez Hdez. 62
5.1.1
Lenguajes Visuales (Visual Languages) (VL) Un lenguaje visual es un conjunto de disposiciones visuales de smbolos grficotextuales con una interpretacin semntica. La gente ha inventado y utilizado muchos lenguajes visuales en el curso de la historia. Una fraccin de ellos tienen algo que ver con las computadoras, pero slo un pequeo nmero de ellos representan programas, y un nmero an ms pequeo de estos representan programas y pueden ser ejecutados en una computadora. Digamos que la gente ha estado utilizando lenguajes visuales por unos 10,000 aos, utilizndolos para fines de comunicacin relacionada con computadoras por 50 aos, y utilizndolos para comunicarse con computadoras por 30. De modo que los lenguajes de programacin visual representan un muy pequeo porcentaje de los lenguajes visuales existentes.
63
5.1.2
Lenguajes de Programacin Visuales (Visual Programming Languages) (VPL) Cualquier lenguaje de programacin que permite al usuario especificar un programa de forma bi-(o ms)-dimensional. Los lenguajes textuales convencionales no son considerados bi-dimensionales debido a que el copilador o intrprete los procesa como un flujo uni-dimensional de caracteres. Un VPL permite la programacin con expresiones visuales; arreglos espaciales de smbolos textuales y grficos. Los VPLs podran ser clasificados de acuerdo al tipo y extensin de la expresin visual utilizada, en: lenguajes basados en iconos, lenguajes basados en formularios, y lenguajes basados en diagramas. Los ambientes de programacin visual proveen elementos grficos o icnicos que pueden ser manipulados por el usuario de forma interactiva de acuerdo a alguna gramtica espacial para la construccin del programa.
64
5.1.2
Un lenguaje visualmente transformado es un lenguaje no-visual con una representacin visual superimpuesta. De forma natural, los lenguajes visuales tienen una expresin visual inherente para la cual no existe un equivalente textual obvio. La programacin visual es comnmente definida como la utilizacin de expresiones visuales (como grficas, dibujos, animaciones o iconos) en el proceso de programacin. Estas expresiones visuales pueden ser utilizadas en ambientes de programacin como interfaces grficas para lenguajes de programacin textuales; estos podran utilizarse para formar la sintaxis de nuevos lenguajes de programacin visal alcanzando nuevos paradigmas, como la programacin mediante demostracin; o podran ser utilizados en representaciones grficas del comportamiento o estructura de un programa.
65
5.1.2
A pesar de sus nombres, Visual Basic, Visual C++ y la familia "visual" de Microsoft, no son lenguajes de programacin visual. Estos son lenguajes textuales que utilizan un constructor de interfaces grfico para facilitar la programacin de interfaces. La interfaz de usuario del ambiente de programacin es visual, los lenguajes no. Debido a la confusin causada por los mltiples significados de programacin visual, Fred Lakin ha propuesto el termino "graficas ejecutables" como una alternativa a VPL. El trmino "lenguaje de programacin visual" sugiere una confusin. El significado refiere un "lenguaje de programacin que podemos ver", o un "lenguaje utilizado para la programacin del comportamiento de elementos visuales"; estas referencias son limitantes. Grficas Ejecutables expresa una orientacin diferente hacia el dominio del problema: Grficas que pueden ser ejecutadas. [Lakin]
66
5.1.2
Paul Lyons ha acuado el trmino "Hiperprogramacin" (Hyperprogramming) el cual rene mejor las capacidades y caractersticas provistas por los lenguajes de programacin visuales. Los argumentos tericos relacionan los VPLs con una mayor expresividad e intuitividad de las representaciones diagramticas de relaciones complejas. Los argumentos prcticos relacionan los VPLs con la suficiente disponibilidad de poder de cmputo para soportar la captura y procesamiento de diagramas visualmente expresados. Especficamente se utiliza: velocidad de procesador, para permitir la realizacin en tiempo real grficos de alta resolucin, para representar notaciones diagramticas complejas ratn, para crear notaciones diagramticas complejas y pantallas basadas en ventanas, para particionar los diagramas resultantes en porciones de tamao manejable.
67
5.1.2
El ltimo punto es el ms importante. El particionamiento de programas para hacerlos ms manejables es bueno, pero crea dificultades para la navegacin. Este tipo de problemas de navegacin ha sido solucionado a travs de documentos "ordinarios" mediante sistemas de hipertexto. Ahora, los documentos "ordinarios" de hipertexto son tediosos en su creacin, pues la adicin de hiperenlaces toman mucho tiempo, pero eso no es problema con los programas, porque para el sistema de entradas es fcil generar los hiperenlaces automticamente, "al vuelo". Tambin dotando a los programadores con tcnicas de navegacin simples y consistentes, los hiperenlaces pueden ser utilizados para actualizar de forma automtica la informacin compartida entre las vistas.
68
5.1.2
Es fcil pensar que los VPLs contarn con particionamiento basado en mltiples ventanas, con hiperenlaces entre las ventanas conectando elementos de informacin compartidos. Llamndoles Lenguajes de Hiperprogramacin se reflejar esta situacin, y podra reducir la sugestiva abstraccin (inherente en el nombre Lenguajes de programacin VISUALES) de que esos lenguajes deberan omitir el texto por completo. [Lyons] Algunos ejemplos de lenguajes de programacin visual son: Prograph, Pict, Tinkertoy, Fabrik, CODE 2.0, e Hyperpascal.
69
5.2.1
Los lenguajes basados en scripts son lenguajes de programacin utilizados para la automatizacin de las operaciones en computadoras. Los primeros lenguajes basados en scripts fueron comnmente denominados lenguajes de programacin por lotes. Muchos lenguajes basados en scripts surgieron como herramientas para ejecucin de tareas "en ausencia", particularmente en administracin de sistemas. Los scripts (programas) son comnmente almacenados como texto sin formato (en ASCII) e interpretados, o compilados (como Perl) en cada ocasin que son invocados. Algunos lenguajes basados en scripts son diseados para un fin especfico, pero frecuentemente es posible escribir programas ms generales. En muchos proyectos a gran escala, se utiliza un lenguaje basado en scripts en conjunto con un lenguaje de ms bajo nivel, cada uno aportando sus potenciales para resolver problemas especficos.
70
5.2.1
71
5.2.1
Server-side scripting (ejecucin del lado del servidor): es una tecnologa de servidor web donde una solicitud de un usuario es atendida mediante la ejecucin de un script directamente en el servidor web para generar pginas de HTML dinmico. Usualmente es utilizado para proveer sitios web interactivos que funcionad como interfaz para bases de datos u otras fuentes de datos. Esto es diferente del "clientside scripting (ejecucuin del lado del cliente) donde los scripts son ejecutados por la ventana del navegador web, usualmente en JavaScript. La ventaja principal de la ejecucin del lado del servidor es la gran habilidad para controlar la respuesta del script basndose en los requerimientos del usuario, derechos de acceso, o consultas en las fuentes de datos. Algunos lenguajes basados en scripts son: Miva MUMPS ObjectRexx Python QuakeC REBOL REXX Shorthand Language Simkin Visual DialogScript ZZT-oop Perl Ruby Tcl PHP Pike Pliant Scheme ScriptBasic sh UnrealScript VBScript
72