Obliq es un interpretado , orientado a objetos lenguaje de programación diseñado para hacer distribuido , y localmente multihilo , computación más simple y más fácil de programar, al tiempo que proporciona la seguridad del programa y un tipo implícito sistema. El intérprete está escrito en Modula-3 y proporciona a Obliq acceso completo a las capacidades de objetos de red de Modula-3 . Se ha desarrollado para Obliq un algoritmo de inferencia de tipos para la concatenación de registros, subtipificación y tipos recursivos. Además, se ha demostrado que es NP-completo [1] y su complejidad más baja es Ο (n 3 ) o si bajo otro modelado hasta ciertas condiciones hasta Ο ( n 2 ) [2] y su implementación más conocida se ejecuta en Ο ( n 5 ) . [3] [ contradictorio ] La sintaxis de Obliq es muy similar a Modula-3, la mayor diferencia es que Obliq no necesita variables tipadas explícitas(es decir, una variable puede contener cualquier tipo de datos permitido por el verificador de tipos y si no acepta una , es decir, se mostrará un error de ejecución de expresión dada) aunque el intérprete permite e ignora las declaraciones de tipo explícitas. Los tipos de datos básicos en el lenguaje incluyen booleanos , enteros , reales , caracteres , cadenas y matrices . Obliq admite el conjunto habitual de estructuras de control secuenciales(formas de manejo de excepciones, iteraciones y condicionales) y formas de control especiales para la concurrencia (mutexes y declaraciones guardadas). Además, los objetos de Obliq se pueden clonar y copiar de forma segura de forma remota por cualquier máquina en un objeto de red distribuida y se puede hacer de forma segura y transparente . [4]
Paradigmas | Multi-paradigma : imperativo , estructurado , modular , orientado a objetos , basado en prototipos , paralelo |
---|---|
Familia | Wirth Oberon |
Diseñada por | Krishna Bharat Marc H. Brown Luca Cardelli |
Apareció por primera vez | 1993 |
Disciplina de mecanografía | Fuerte , dinámico |
Alcance | Léxico puro |
Lenguaje de implementación | Modula-3 |
Plataforma | IA-32 |
Sitio web | www |
Implementaciones importantes | |
Obliq, Obliq visual | |
Influenciado por | |
Modula-3 , uno mismo , Oberon |
La gran biblioteca estándar de Obliq proporciona un sólido soporte para operaciones matemáticas, entrada / salida (E / S), persistencia , control de subprocesos, gráficos y animación. La computación distribuida se basa en objetos: los objetos tienen un estado, que es local para un proceso . El alcance de los objetos y otras variables es puramente léxico . Los objetos pueden llamar a métodos de otros objetos, incluso si esos objetos están en otra máquina de la red. Los objetos Obliq son simplemente colecciones de campos con nombre (similares a las ranuras en Self y Smalltalk ) y admiten la herencia por delegación (como Self).
Los usos comunes de Obliq implican la programación a través de redes, animación 3D y computación distribuida, como ocurre en una red de área local (LAN) como Ethernet . Obliq se incluye de forma gratuita con la distribución Modula-3 de Digital Equipment Corporation (DEC), pero existen otras versiones gratuitas en otros lugares, incluidos los binarios precompilados para varios sistemas operativos .
Proyectos que utilizan Obliq
- Los Libros de Texto Colaborativos Activos (CAT) [5] desarrollados utilizando applets de Obliq [6] y el sistema de animación del algoritmo Zeus [7] (escrito en Modula-3 ).
- Obliq applets (Oblets) [6] navegador web especial (escrito en Modula-3 ) Aplicaciones integradas de la página web Obliq. [8]
Referencias
- ^ http://www.cs.ucla.edu/~palsberg/paper/ic04.pdf
- ^ Henglein, Fritz (1999). "Rompiendo la barrera n 3 : inferencia de tipo de objeto más rápida". Teoría y práctica de sistemas de objetos . 5 (1): 57–72. doi : 10.1002 / (SICI) 1096-9942 (199901/03) 5: 1 <57 :: AID-TAPO5> 3.0.CO; 2-U .
- ^ Palsberg, Jens; Zhao, Tian (2002). "Inferencia de tipo eficiente para la concatenación y subtipificación de registros". Lógica en Ciencias de la Computación, Simposio sobre . Los Alamitos, California, EE.UU .: IEEE Computer Society. pag. 125. doi : 10.1109 / LICS.2002.1029822 .
- ^ Briais, Sebastien; Nestmann, Uwe (2002). Los "objetos móviles" deben "moverse con seguridad". FMOODS '02 . págs. 129-146. CiteSeerX 10.1.1.23.4787 .
- ^ Brown, Marc H .; Najork, Marc A. (mayo de 1996). "Libros de texto activos colaborativos: un sistema de animación de algoritmo basado en la web para un aula electrónica; Informe de investigación 142" . Centro de Investigación de Sistemas DEC (SRC) . Corporación de Equipos Digitales (DEC).
- ^ a b Brown, Marc H .; Najork, Marc A. (1997). "Subprogramas distribuidos" . CHI '97 resúmenes extendidos sobre los factores humanos en los sistemas informáticos: mirando hacia el futuro . Atlanta, Georgia: ACM. págs. 204–205. doi : 10.1145 / 1120212.1120344 . ISBN 0-89791-926-2. Consultado el 15 de mayo de 2010 .
- ^ Zeus: un sistema para animación de algoritmos y edición de vistas múltiples Marc H. Brown. Informe de investigación del Centro de Investigación de Sistemas (SRC) de Digital Equipment Corporation (DEC)075 (febrero de 1992)
- ^ http://www.ibiblio.org/openvideo/video/chi/chi97_02_m1.mpg
enlaces externos
- Página web oficial
- Obliq en Curlie
- Luca Cardelli 's Obliq inicio rápido de la página (archivada en 2008-10-17)