Turing es un lenguaje de programación de alto nivel y propósito general desarrollado en 1982 por Ric Holt y James Cordy , en la Universidad de Toronto en Ontario, Canadá. Fue diseñado para ayudar a los estudiantes que toman su primer curso de informática a aprender a codificar. Turing es un descendiente de Pascal , Euclid y SP/k que presenta una sintaxis limpia y una semántica precisa independiente de la máquina .
Turing 4.1.0 es la última versión estable. Las versiones 4.1.1 y 4.1.2 no emiten archivos .exe independientes . Las versiones anteriores a la 4.1.0 tienen sintaxis y funciones obsoletas.
Turing , que lleva el nombre del informático británico Alan Turing , se utiliza principalmente como lenguaje de enseñanza en el nivel secundario y universitario. [1] Existen otras dos versiones, Turing orientada a objetos y Turing Plus, una variante de programación de sistemas. En septiembre de 2001, el "Turing orientado a objetos" pasó a llamarse "Turing" y el Turing original pasó a llamarse "Turing clásico". Turing ahora no cuenta con el soporte de Holt Software Associates en Toronto, Ontario . Turing se utilizó ampliamente en las escuelas secundarias de Ontario como introducción a la programación. [2]
El 28 de noviembre de 2007, Turing, que anteriormente era un lenguaje de programación comercial, se convirtió en software gratuito, disponible para descargar desde el sitio web del desarrollador de forma gratuita para uso personal, comercial y educativo. [3] [4] [5]
Desde entonces, los creadores de Turing, Holt Software Associates, han cesado sus operaciones y Turing no ha experimentado ningún desarrollo adicional desde el 25 de noviembre de 2007. [4]
Turing está diseñado para tener una sintaxis muy ligera, legible e intuitiva . Aquí está el "¡Hola mundo!" completo. programa en Turing con resaltado de sintaxis :
ponga "¡Hola mundo!"
Turing evita puntos y comas y llaves , utiliza marcadores de final explícitos para la mayoría de las construcciones del lenguaje y permite declaraciones en cualquier lugar. Aquí hay un programa completo que define y utiliza la función recursiva tradicional para calcular un factorial .
*comentario*% Acepta un número y calcula su factorial función factorial ( n : int ) : real si n = 0 entonces resultado 1 si no resultado n * factorial ( n - 1 ) fin si fin factorial var n : int loop put "Ingrese un número entero:" .. obtenga n salida cuando n >= 0 put "La entrada debe ser un número entero no negativo". bucle final poner "El factorial de " , n , " es " , factorial ( n )
Actualmente, existen dos implementaciones alternativas de código abierto de Turing: Open Turing, una versión de código abierto del intérprete original , y TPlus, un compilador nativo para la variante del lenguaje de programación de sistemas concurrentes Turing Plus. OpenT, un proyecto para desarrollar un compilador de Turing, fue descontinuado.
Open Turing es una implementación de código abierto del intérprete de Turing original para Windows escrito por Tristan Hume. Incluye mejoras de velocidad, nuevas funciones como OpenGL 3D y un nuevo editor de código. Es totalmente compatible con la implementación de código cerrado. [6]
TPlus es una implementación de código abierto del Turing original (no orientado a objetos) con extensiones de programación de sistemas desarrolladas en la Universidad de Toronto y portadas a Linux , Solaris y Mac OS X en la Queen's University a finales de los años 1990. [7] TPlus implementa Turing+ (Turing Plus), un lenguaje de programación de sistemas concurrentes basado en el lenguaje de programación Turing original. Algunas, pero no todas, las características de Turing Plus finalmente se incluyeron en el actual lenguaje Turing orientado a objetos. Turing Plus amplía el Turing original con procesos , monitores (según lo especificado por CAR Hoare ) y construcciones de lenguaje necesarias para la programación del sistema, como entrada-salida binaria, compilación separada, variables en direcciones absolutas, convertidores de tipos y otras características.
Turing+ (Turing Plus) es un lenguaje de programación de sistemas concurrentes basado en el lenguaje de programación Turing diseñado por James Cordy y Ric Holt , entonces en la Universidad de Toronto , Canadá, en 1987. Algunas, pero no todas, las características de Turing+ fueron finalmente subsumido en Turing orientado a objetos. Turing+ amplió el Turing original con procesos y monitores (según lo especificado por CAR Hoare ), así como construcciones de lenguaje necesarias para la programación de sistemas, como entrada-salida binaria, compilación separada, variables en direcciones absolutas, convertidores de tipos y otras características.
Turing+ fue diseñado explícitamente para reemplazar a Concurrent Euclid en aplicaciones de programación de sistemas. El sistema operativo TUNIS , escrito originalmente en Concurrent Euclid, fue recodificado en Turing+ en su implementación MiniTunis. Turing+ se ha utilizado para implementar varios sistemas de software de producción, incluido el lenguaje TXL .
Turing orientado a objetos es una extensión del lenguaje de programación Turing y un reemplazo de Turing Plus creado por Ric Holt [8] [9] de la Universidad de Toronto , Canadá, en 1991. Es imperativo , orientado a objetos y concurrente . Tiene módulos , clases , herencia única , procesos , manejo de excepciones y programación opcional dependiente de la máquina .
Hay un entorno de desarrollo integrado bajo el sistema X Window y una versión de demostración. [ cita necesaria ] Existen versiones para Sun-4 , MIPS , RS-6000 , NeXTSTEP , Windows 95 y otros.