El ISWIM es un lenguaje de programación abstracto de la computadora (o una familia de lenguajes de programación) ideada por el Peter J. Landin y primero descrita en su artículo, los 700 lenguajes de programación siguientes, publicados en las comunicaciones del ACM en el 1966 . Las siglas representan " I f usted ean" del M I del sombrero del W S EE;.
Aunque no esté ejecutado, haya probado muy influyente en el desarrollo de los lenguajes de programación, especialmente idiomas de la programación funcional tales como SASL, Miranda, ml, Haskell y sus sucesores.
ISWIM es una lengua imprescindible con una base funcional, consistiendo en azucarar del cálculo de la lambda a el cual están (i) las variables y la asignación mutable agregada y (ii) un mecanismo de control de gran alcance (operador de J de Peter Landin). Siendo basado en el cálculo ISWIM de la lambda tenía funciones más altas de la orden y el scoped léxico variables de .
La semántica operacional de ISWIM se define usar la máquina SECD de Landin y utiliza el llamar-por-valor, de que es la evaluación impaciente . Una meta de ISWIM era mirar más bién notación matemática, así que puntos y comas de s del ALGOL abandonado Landin 'entre las declaraciones y los bloques de begin end y substituido les por la regla Off-side y el scoping basado en la muesca.
Está su uso una característica notationally distintiva de ISWIM de donde las cláusulas. Está una sola expresión un programa de ISWIM calificada por “donde” las cláusulas (definiciones auxiliares incluyendo ecuaciones entre variables), las expresiones condicionales y las definiciones de función. Con el COMPLETO, estaba uno ISWIM de los primeros lenguajes de programación a utilizar “donde” las cláusulas.
Una característica semántica notable era la capacidad de definir nuevos tipos de datos, como suma de a (posiblemente recurrente) de productos - esto fue hecha usar una descripción de lenguaje natural algo prolija del estilo, pero aparte de cantidades de la notación exactamente a los tipos de datos algebraicos encontrados en idiomas funcionales modernas. Las variables de ISWIM no tenían tipo declaraciones explícito y parece probablemente (aunque esté indicado no explícitamente en los 1966 de papel) que Landin pensó la lengua que se mecanografiará dinámicamente, como el lisp y desemejante de ALGOL ; pero es también apenas posible que él tenía en la mente para desarrollar una cierta forma de tipo inferencia .
No se intentó ninguÌn implemention directo de ISWIM pero el amigacho de Evan del arte y Gedanken de Juan Reynold capturaron la mayor parte de los conceptos de Landin incluyendo operaciones de gran alcance del transferir-de-control. Ambos éstos fueron mecanografiados dinámicamente. El ml de Milner se puede considerar equivalente a ISWIM sin el operador de J y con el tipo inferencia.
Otra línea de pendiente de ISWIM es pelar hacia fuera las características imprescindible (asignación y el operador de J) que salen de una lengua puramente funcional. Entonces llega a ser posible cambiar a la evaluación perezosa . Esta trayectoria llevada al SASL, al Miranda y al Haskell .
| Random links: | Wiley, Colorado | Patrick Chamoiseau | Historia de Birmingham | Lista de tártaros | Tina Majorino |