Top 10 de los artículos

YouTube
Gmail
Goole
GayRomeo
Números chinos
Números romanos
Orkut
Costco
Sistema porta hepático
El mundo Factbook

News:

Leer-eval-imprima el lazo

A leer-eval-imprima el lazo (REPL), también conocido como toplevel interactivo, es un simple, interactivo programación de la computadora ambiente. El término se utiliza lo más generalmente posible para referir a a Lisp el ambiente interactivo, pero se puede aplicar a línea de comando cáscaras y ambientes similares para Palique, Python, Haskell, APL, BASIC, J, Esquema, TCL, y otras idiomas también.

A un REPL, el usuario puede incorporar las expresiones, que entonces se evalúan, y los resultados exhibidos. El nombre leer-eval-imprima el lazo viene de los nombres de las funciones primitivas del lisp que ponen esta funcionalidad en ejecución:

leído la función acepta una sola expresión del usuario, y analiza él en una estructura de datos en memoria. Por ejemplo, el usuario puede entrar en s-expresión (+ 1 2 3), que se analiza en a lista encadenada contener cuatro elementos de datos.
eval la función toma esta estructura de datos interna y la evalúa. En el lisp, la evaluación de una s-expresión que comienza con el nombre de una función significa llamar esa función en las discusiones que componen el resto de la expresión. Tan la función + se invita las discusiones 1 2 3, rindiendo el resultado 6.
impresión la función toma el resultado rendido cerca eval, e impresiones él hacia fuera al usuario. Si es una expresión compleja, puede ser bonito-impreso para hacerlo más fácil entender. En este ejemplo, aunque, el número 6 no necesita mucho formato imprimir.

El REPL es comúnmente misnamed intérprete. Esto es un uso erróneo, desde muchos lenguajes de programación que utilicen compilación (incluyendo bytecode la compilación) tiene REPLs, por ejemplo Lisp común y Python.

Porque impresión salidas de la función en el mismo formato textual que leído las aplicaciones de la función para la entrada, la mayoría de los resultados se imprimen en una forma que podría (si es útil) se copie y se pegue nuevamente dentro del REPL. Sin embargo, es a veces necesario imprimir las representaciones de los elementos de datos opacos que no se pueden leer sensible detrás adentro -- por ejemplo una manija del zócalo o un caso complejo de la clase. En estos casos, allí debe existir un sintaxis para los objetos ilegibles -- en Python, es <caso de __module__.class> notación; en el lisp común, #< lo que> forma. El REPL de CLIM y Symbolics Máquina del lisp la poder también leyó detrás objetos ilegibles. Registran para cada salida que el objeto fue impreso. Más adelante cuando el código se lee detrás, el objeto será recuperado de la salida impresa.

Contenido

Ventajas

Un REPL puede convertirse en una parte esencial de aprender una nueva lengua mientras que da la regeneración rápida al principiante. Muchas herramienta-habitaciones así como lenguajes de programación utilizan un REPL para permitir la exploración del algoritmo y elimine errores, por ejemplo Matlab, SciPy y IPython. el más doctest módulo del Python el lenguaje de programación permite que las pruebas sean generadas fácilmente de la salida capturada de su línea de comando de REPL cáscara.

Puesta en práctica

Para poner un lisp en ejecución REPL, es necesario poner solamente estas tres funciones y una función del infinito-lazo en ejecución. (Naturalmente, la puesta en práctica de eval será complicada, puesto que debe también poner todas las funciones del primitivo en ejecución como coche y + y los operadores especiales tienen gusto si.) Esto hecha, un REPL básico sí mismo es solamente una sola línea del código: (lazo (impresión (eval (leído)))).

Una puesta en práctica posible de eval está como intérprete recurrente que actúe en el árbol del sintaxis creado cerca leído. Otra posibilidad es compilar el árbol del sintaxis en el código automático y ejecutarlo.

Ambientes importantes de la lengua y REPLs asociado

  • Python tiene un REPL incorporado y una versión realzada adentro IPython.
  • Java no tiene un REPL incorporado, sino tiene una puesta en práctica pura de Java adentro BeanShell. Puede también ser conducido vía las idiomas scripting viradas hacia el lado de babor a la plataforma de Java como Jython.
  • Rubí's biblioteca estándar contiene un módulo llamado IRB para el cual esté parado Shell de rubíes interactivo cuál proporciona un REPL. La distribución de rubíes del estándar empaqueta una utilidad independiente llamada irb qué freza simplemente un caso de IRB.
  • Por lo menos dos Haskell las puestas en práctica proporcionan funcionalidad de REPL. Recopilador de Glasgow Haskell proporciona ghci y Abrazos el intérprete es de uso frecuente por los principiantes como Haskell REPL.
  • PHP no tiene un REPL incorporado, sino tiene el de tercera persona phpsh.
  • Mozilla'el motor interno del Javascript de s se puede manipular recíprocamente a través MozRepl.
  • Windows PowerShell, la parte de Microsoft Windows, proporciona un REPL.
  • Scala (una lengua en el JVM) proporciona un REPL; comiéncelo en la línea de comando por “scala que mecanografía” (en comparación con scalac, el recopilador).

Acoplamientos externos

The original article is from Wikipedia. To view the original article please click here.
Creative Commons Licence