Q (lenguaje de programación ecuacionales)
|
Este artículo incluye un lista de referencias, relacionados con la lectura o enlaces externos, pero sus orígenes no están claros porque carece de citas en línea. (Marzo de 2011) |
Paradigm(s) | Multiparadigm: funcional, orientado a objetos |
---|---|
Diseñado por | Albert Gräf |
Apareció en | 1991 |
Versión estable | 7.5 / 12 de septiembre de 2006 |
Disciplina mecanografía | dinámica, fuerte |
Principales implementaciones | Q |
Influenciado | Puro |
Sitio web | q-lang.sourceforge.net |
Q (abreviatura de lenguaje de programación ecuacionales) es un interpretado, interactivo funcional lenguaje de programación creado por Albert Gräf en la Universidad de Maguncia en Alemania. Q programas son sólo colecciones de ecuaciones que se utilizan para evaluar Expresiones de manera simbólica. Q tiene muchas semejanzas con otros lenguajes de programación funcionales modernos como Haskell y ML, pero se basa en general reescritura del término (un método de cálculo utilizado también por el Mathematica sistema de álgebra computacional) en vez de la cálculo lambda.
A pesar de su simplicidad conceptual, Q es un lenguaje de programación funcional completa con una sintaxis moderna, para, tipificación dinámica usando un orientado a objetos tipo de sistema, manejo de excepciones, POSIX subprocesamiento múltiple, una biblioteca estándar y una interfaz para el Lenguaje de programación C. Q es un lenguaje funcional impuro (es decir, operaciones con efectos secundarios se permiten) con un valor predeterminado evaluación impaciente estrategia; "formas especiales" pueden utilizarse para implementar estructuras de datos y operaciones con evaluación diferida. Q se ha portado a una variedad de sistemas operativos, incluyendo BeOS, FreeBSD, Linux, Mac OS X, Solaris y Microsoft Windows. El intérprete es software libre distribuido bajo el Licencia Pública General de GNU.
Varios módulos se proporcionan para interconectar, por ejemplo, a GNU Octave, OpenDX (IBMsoftware de visualización científica de 's), TCL/Tk y ODBC. A gráfico Editor y biblioteca también está disponible. Esto convierte el lenguaje en una herramienta práctica para científicas y otras aplicaciones avanzadas. Q también viene con una interfaz de sistema extensivo (aunque no tan amplios como los servicios proporcionados por otras lenguajes de scripting tales como Perl y Python). Por otra parte, música de ordenador las aplicaciones se soportan mediante interfaces portátiles para MIDI y audio digital programación.
Q ha sido logrado por Puro.
Contenido
- 1 Ejemplos
- 2 Véase también
- 3 Referencias
- 4 Enlaces externos
Ejemplos
A"Hola mundo"ejemplo:
Hola = escribe "Hola, mundo! \n";
La siguiente función genera la "corriente" (a.k.a. infinita lista) de todos números primos:
los números primos = tamiz (ints 2); Ints N = N bin (ints (N + 1)); tamiz (bin Xs X) = X bin (tamiz (filtro (ndivby X) Xs)); ndivby M N = N mod M <> 0;
Un algoritmo para resolver el Problema de "Reinas de N", usando el retroceso:
reinas N = search N 1 1 []; buscar N I J P = escriba P || escribe "\n" si I > N; = search N (I + 1) 1 (P++[(I,J)]) || fallar si es seguro (I, J) P; = search N I J + 1 P Si J < N; = () caja fuerte (I1, J1) P = no (check (I1, J1)) P; Compruebe (I1, J1) (I2, J2) = (I1 = I2) o bien (J1 = J2) o bien (I1 + J1 = I2 + J2) o bien (I1-J1 = I2-J2);
Un ejemplo de programación de sistema pequeño (buscar un archivo desde un servidor WWW sobre un zócalo):
/ * Asegúrese de que se omite SIGPIPE (señal de conexión rota) * / def _ = trampa SIG_IGN SIGPIPE; / * buscar un archivo desde un servidor http (puerto 80) * / http HOST NAME = FD cerca || BSTR respuesta donde FD:Int = socket AF_INET SOCK_STREAM 0, _ = conectar FD (HOST, 80), _ = enviar FD 0 (bytestr (sprintf "GET %s\r\n\r\n" nombre)), respuesta = recv_loop FD (bytestr ""); / * leer datos en trozos de 64K * / recv_loop FD S = recv_loop FD (s + T) si #T > 0 donde T:ByteStr = recv FD MSG_WAITALL (64 * 1024); = S lo contrario;
Véase también
- Puro, el sucesor de Q
- Q (lenguaje de programación de sistemas Kx) -matriz procesamiento lenguaje comercializado por sistemas Kx.
Referencias
- A. Gräf. El lenguaje de programación Q. Musikinformatik & Medientechnik 6/92, Johannes Gutenberg-Universität Mainz, 1992.
Enlaces externos
- Q-lang homepage