Mercury

Software captura de pantalla:
Mercury
Detalles de software:
Versión: 13.05.1
Fecha de carga: 15 Apr 15
Licencia: Libre
Popularidad: 11

Rating: 2.0/5 (Total Votes: 1)

lenguajes de programación lógica han existido desde hace más de veinte años. A pesar de las ventajas que se esperan de un lenguaje de programación de muy alto nivel basado en teorías bien desarrolladas de la lógica más lenguajes de programación convencionales (como C, C ++, Pascal y Ada) no han tenido un impacto significativo en la industria de la computación.
El mercurio es un nuevo / lenguaje de programación funcional lógica, que combina la claridad y la expresividad de la programación declarativa con funciones de análisis y detección de errores estáticos avanzadas.
Mercurio está muy optimizado algoritmo de ejecución ofrece una eficiencia muy superior a los sistemas de programación lógica existentes, y cerca de los sistemas de programación convencionales.
Mercurio aborda los problemas de desarrollo de programas a gran escala, lo que permite la modularidad, compilación separada, y numerosos optimización / tiempo trade-offs

¿Qué hay de nuevo en esta versión:.

  • Esta versión corrige corrección de errores se acumulan problemas en Solaris y NetBSD y añade soporte para la selección del compilador de C # en tiempo de configuración.
  • Varios otros pequeños bugs han sido corregidos.
  • También hay algunas adiciones menores a la biblioteca estándar.

¿Cuál es nuevo en la versión 13.05:

  • Generación de ejecutables de 64 bits en Windows es ahora compatible.

  • Se han mejorado
  • tiempos de compilación de programas muy grandes.
  • Se han añadido varias nuevas optimizaciones de representación tipo.
  • El depurador ahora tiene un mejor soporte para el manejo de las camarillas de llamadas mutuamente recursivas en la pila.
  • A de unión a la biblioteca GLFW ha sido añadido a la distribución extras.
  • Asambleas generados con el C # backend ahora se pueden firmar con un nombre seguro.

¿Cuál es nuevo en la versión 11.01:

  • Hemos añadido dos nuevos tipos de ámbitos de la lengua.
  • Un ámbito introducido por una de las nuevas palabras clave require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous y require_failure, como su nombre indica, requiere la meta dentro del ámbito de aplicación para tener el determinismo dado.
  • Un ámbito introducida por la palabra clave require_complete_switch requiere la meta dentro del ámbito de aplicación, si se trata de un interruptor en la variable llamada por el alcance, al haber un cambio completo, es decir, a tener armas para todos los símbolos de función en el tipo de la conmutados en variable.
  • Hemos agregado modos semidet para hash_table.fold / 4 y version_hash_table.fold / 4.
  • Hemos añadido nuevos predicados y funciones para el módulo assoc_list. Los predicados map_keys_only / 3 map_values_only / 3 y map_values ​​/ 3 complemento de las funciones del mismo nombre. Los predicados filtran / 3, negated_filter / 3, filtran / 4, se fusionan / 3, que también tiene versiones de función, hacer trabajos muy similares a los predicados del mismo nombre en el módulo de la lista, pero hacen las operaciones pertinentes sobre las teclas en lugar de la totalidad elementos de la lista.
  • Hemos movido el módulo de evaluación perezosa de la distribución extras y en un nuevo módulo de la biblioteca estándar llamado `vago '. También se ha hecho-backend agnóstico.
  • Hemos realizado cambios en el módulo de la lista de la biblioteca estándar:
  • Hemos añadido una nueva list.member_index0 predicado / 3. Es como list.member / 2, excepto que también tiene un parámetro que representa el índice basado en cero del elemento dentro de la lista.
  • Hemos añadido un nuevo predicado list.map3_foldl / 7 que asigna más de una lista de producir tres listas y un valor doblado.
  • Agregamos modos semidet con acumuladores únicas para list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, y list.foldl6 / 14.
  • Hemos añadido los predicados dividen / 4 y divide_by_set / 4 al módulo tree_bitset de la biblioteca estándar.
  • Hemos añadido los predicados set_ctree234.member / 2 y set_ctree234.non_empty / 1. Tenemos agregar la función set_ctree234.from_list / 1.
  • Hemos agregado la la set_bbbtree.count predicado / 2 y la función set_bbbtree.count / 1. Estos reemplazan el predicado set_bbbtree.size / 2, que ahora está en desuso.
  • Hemos agregado la set_ordlist.non_empty predicado / 1.
  • Hemos agregado la set_tree234.non_empty predicado / 1 y el set_tree234.from_list función / 1.
  • Hemos añadido los predicados set_unordlist.non_empty / 1 y set_unordlist.count / 2, y la función set_unordlist.count / 1.
  • Todos los módulos de la biblioteca estándar que implementan el ADT juego, (set, set_ordlist, set_unordlist, set_bbbtree, set_tree234 y set_ctree234), ahora son compatibles con plegado sobre conjuntos con hasta seis acumuladores. También se han añadido funciones que proveen acumuladores únicos y sobre todo-únicas para conjunto veces.
  • Hemos realizado los siguientes cambios en el módulo de selección de la biblioteca estándar:
  • Hemos añadido las funciones unsafe_elem / 2 y anexar / 2.
  • Hemos añadido los predicados svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, y miembro / 2.
  • Hemos añadido los predicados version_array.foldl2 / 6, version_array.foldr / 4, y version_array.foldr2 / 6 a la biblioteca estándar.
  • Hemos agregado modos semidet con acumuladores únicos y sobre todo-únicas para los siguientes predicados:
  • bimap.foldl2 / 6
  • bimap.foldl3 / 8
  • cord.foldl_pred / 4
  • cord.map_foldl / 5
  • list.map_corresponding_foldl2 / 8
  • list.map_corresponding_foldl3 / 10
  • list.map_corresponding3_foldl / 7
  • map.foldl3 / 8
  • Hemos agregado el predicado unsorted_aggregate2 / 6 al módulo de soluciones de la biblioteca estándar.
  • Hemos añadido varios predicados y funciones para el módulo requiere de la biblioteca estándar. Los predicados sorry / 2 y lo siento informe / 3 la ausencia de una característica, mientras que los predicados inesperados / 2 e inesperadas / 3 Informe de un error interno en el programa; todos tienen versiones de función también. El predicado esperar / 3 llamadas inesperadas si una condición no se cumple. Ahora tenemos esperar / 4, así como esperar / 3. Por esperan / 4, así como esperar / 3, la primera y última argumentos son la condición esperada y el mensaje de error, respectivamente, pero con esperar / 4, hay dos argumentos en el medio para especificar la ubicación del error (normalmente el nombre del módulo y del predicado respectivamente). También hemos añadido expect_not / 3 y expect_not / 4, que son como esperar / 3 y esperan / 4 respectivamente, excepto que esperan que la condición sea falsa * *, no es verdad.

¿Cuál es nuevo en la versión 10.04.2:

  • Esta versión es una versión de corrección de errores. Una serie de problemas que causaron el compilador para abortar se han fijado, algunas operaciones rotos RTTI en el grado de Java han sido corregidos, y hemos añadido una solución para un problema con la versión de GCC 4.4.

Limitaciones :

  • La implementación actual todavía no implementar completamente el idioma Mercurio. Las principales limitaciones de la implementación actual son los siguientes:
  • No permitimos aliasing definida en el sistema de modo. Sin esto, los modos parcialmente instanciados son inutilizables, y así se anidan modos únicos.
  • El compilador no todavía usan estructura reutilización o compilar en tiempo de recolección de basura para explotar modos únicos.
  • Tipo y modo de inferencia son un poco imperfecta.

  • Además, las decisiones de diseño en este implemenation han impuesto los siguientes límites:
  • Los predicados y funciones puede tener como máximo alrededor de 1000 argumentos.

  • términos
  • de orden superior pueden tener como máximo unos 500 argumentos.

Programas parecidos

Agena
Agena

22 Jun 18

GCL
GCL

3 Jun 15

bigloo
bigloo

20 Feb 15

bin86
bin86

3 Jun 15

Comentarios a la Mercury

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!