Una práctica calculadora de lambda

Una calculadora de lambda práctica es una calculadora de lambda con comandos y accesos directos convenientes.
Descargar ahora

Una práctica calculadora de lambda Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Public Domain
  • Precio:
  • FREE
  • Nombre del editor:
  • Oleg
  • Sitio web del editor:
  • http://pobox.com/~oleg/ftp/Computation/lambda-calc.html

Una práctica calculadora de lambda Etiquetas


Una práctica calculadora de lambda Descripción

Una práctica calculadora Lambda es una calculadora Lambda con comandos y accesos directos convenientes. Una práctica calculadora de lambda es un evaluador de orden normal para el Lambda-Cálculo sin impuestos, extendido con comandos y accesos directos convenientes para que la programación sea más productiva. Lascutcuts son constantes distinguidas que representan términos. Los comandos definen nuevos accesos directos, activen el seguimiento de todas las reducciones, comparar los términos Modulo Alpha-Conversion, imprima todos los accesos directos y banderas de evaluación definidas, etc. Los términos que se evalúan y los comandos se ingresan en un "PRESTIDO DE REPLAD) de LEAD-EVAL-PRINT-LOOP (REPL) o "incluido" de un archivo por un comando especial. Una sucursal Haskell es una incrustación de la calculadora Lambda (como lenguaje específico de dominio) en Haskell. La calculadora se puede usar de forma interactiva dentro de los abrazos o GHCI. La calculadora actual implementa lo que parece ser un algoritmo eficiente y elegante de las reducciones de orden normales. El algoritmo es "más funcional" que el enfoque tradicionalmente utilizado. El algoritmo parece idéntico a ese empleado por YACC sans una diferencia crítica. La calculadora también requiere un enfoque más "funcional" de la higiene de las sustituciones beta, que se logra al colorear de identificadores donde sea absolutamente necesario. Este enfoque es "más funcional" porque evita un contador global o el roscado del cubo de pintura a través del proceso. La integración de la calculadora con Haskell nos permite almacenar términos en las variables y combinarlos de manera fácil e intuitiva. La receta tradicional para las reducciones de orden normal incluye una frase desagradable "cocinar hasta que se haga". La frase hace que sea necesario realizar un seguimiento de los intentos de reducción, e implica un algoritmo iterativo feo. Estamos proponiendo lo que parece ser una técnica eficiente y elegante que se puede implementar a través de reglas de reescritura intuitivas. Nuestra calculadora, como YACC, posee una pila y funciona haciendo una secuencia de cambios y reduce los pasos. La única diferencia significativa de YACC es que la calculadora de lambda "se reparte", el resultado después del paso de reducción exitoso. La fuente y los idiomas objetivo de nuestro "analizador" (lambda-calculadora) son los mismos; Por lo tanto, el analizador puede aplicarse en sí mismo. La pila de análisis puede hacerse implícita. En ese caso, el algoritmo se puede usar para la normalización de los términos lambDA escritos en DUDIOS. Los siguientes ejemplos muestran que Lambda-Cálculo se convierte en un lenguaje específico de dominio incrustado en Haskell:> C0 = F ^ X ^ X - Número de iglesia 0 > Succ = C ^ F ^ x ^ F # (C # F # X) - Succesor> C1 = Eval $ Succ # C0 - Preevaluar Otros números> C2 = Eval $ Succ # C1> C3 = eval $ succ # C2> C4 = Eval $ Succ # C3it es de hecho conveniente para almacenar términos en las variables Haskell y preevaluarlas (es decir, normalizar). De hecho, son términos. Siempre podemos pedirle al intérprete que muestre el término. Por ejemplo, muestra los rendimientos C4 (f. (X. F (F (F (F (F X)))). Deje mul = a ^ b ^ f ^ a # (B # F) - Multiplicación Evalde $ mul # C1 ---> (b. B), la función de identidad Evalde $ mul # C0 ---> (b. ( F. (x. X))), que es "Const 0" Estos son los resultados algebraicos: Multiplicar cualquier número por cero siempre da cero. Ahora podemos ver cómo la lambda-cálculo puede ser útil para el teorema que demuestra, incluso sobre las fórmulas cuantificadas universalmente. La calculadora implementa la sugerencia del Dr. Fairbairn para limitar la profundidad de los términos impresos. Esto hace posible evaluar e imprimir algunos términos divergentes (llamados términos de la cola-divergente): lambda_calc> LET Y_COMB = F ^ ((P ^ p # P) # (C ^ F # (C # C))) en EVAL $ y_comb # CC (C (C (C (C (C (C (C (C (C (C (...))))))))) Es sorprendente lo bien que Lambda-Cálculo y Haskell juegan juntos.


Una práctica calculadora de lambda Software relacionado

PORTÓN

Simulaciones de exploraciones preclínicas y clínicas en la tomografía por emisión ...

419

Descargar

Remitto

Remitt es la traducción y transmisión de información médica electrónica. ...

208

Descargar

Segm

Programa SEGM para la segmentación de las imágenes del SR. ...

193

Descargar