Q (lenguaje de programación ecuacionales)

Ir a: navegación, búsqueda de
Q
Paradigm(s) Multiparadigm: funcional, orientado a objetos
Diseñado por Albert Gräf
Apareció en 1991(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

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=Q _ (equational_programming_language) & oldid = 609102209"