Turing es un lenguaje de programación similar a Pascal desarrollado en 1982 por Ric Holt y James Cordy , entonces de la Universidad de Toronto , en Toronto , Ontario, Canadá. Turing es un descendiente de Euclid , Pascal y SP / k que presenta una sintaxis limpia y una semántica precisa independiente de la máquina.
Paradigma | multi-paradigma : orientado a objetos , procedimental |
---|---|
Diseñada por | Ric Holt y James Cordy |
Desarrollador | Asociados de Holt Software |
Apareció por primera vez | mil novecientos ochenta y dos |
Disciplina de mecanografía | estático , manifiesto |
SO | Microsoft Windows |
Implementaciones importantes | |
Turing, TPlus, OpenT | |
Dialectos | |
Turing orientado a objetos , Turing Plus | |
Influenciado por | |
Euclides , Pascal , SP / k |
Turing 4.1.0 es la última versión estable de Turing. Turing 4.1.1 y Turing 4.1.2 no permiten la creación de archivos .EXE independientes y las versiones anteriores a Turing 4.1.0 tienen una sintaxis y funciones obsoletas.
Descripción general
Nombrado en honor al científico informático británico Alan Turing , Turing se utiliza principalmente como lengua de enseñanza en la escuela secundaria y la universidad. [ cita requerida ] [1] Existen otras dos versiones, Turing orientado a objetos y Turing Plus , una variante de programación de sistemas. En septiembre de 2001, "Turing orientado a objetos" pasó a llamarse "Turing" y el Turing original pasó a llamarse "Turing clásico". Turing ya no cuenta con el respaldo de Holt Software Associates en Toronto, Ontario . Actualmente, Microsoft Windows es la única plataforma compatible. Turing se usa 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]
Los fabricantes de Turing, Holt Software Associates, han cesado sus operaciones desde entonces, y Turing no ha experimentado más desarrollo desde el 25 de noviembre de 2007. [4]
Sintaxis
Turing está diseñado para tener una sintaxis muy ligera, legible e intuitiva. ¡Aquí está todo el Hello World! programa en Turing con resaltado de sintaxis :
poner "¡Hola mundo!"
Turing evita los puntos y comas y las llaves, en su lugar utiliza marcadores de fin explícitos para la mayoría de las construcciones de lenguaje y permite declaraciones en cualquier lugar. Aquí hay un programa completo que define y usa la función recursiva tradicional para calcular un factorial .
% 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 final factorial var n : int loop put "Por favor ingrese un entero:" .. get n exit cuando n > = 0 put "La entrada debe ser un entero no negativo". bucle final poner "El factorial de" , n , "es" , factorial ( n )
Implementaciones abiertas
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 para Turing, ya no está en desarrollo.
Abrir Turing
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 versiones anteriores de la implementación de código cerrado. [6]
TPlus
TPlus es una implementación de código abierto de 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 Universidad de Queen a finales de la década de 1990. [7] TPlus implementa Turing + ( Turing Plus ), un lenguaje de programación de sistemas concurrentes basado en el lenguaje de programación original de Turing. Algunas, pero no todas, las características de Turing Plus fueron eventualmente subsumidas en el actual lenguaje de Turing orientado a objetos. Turing Plus amplía 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 tipo y otras características.
Trivialidades
Como una adición a las funciones de dibujo de gráficos habituales, Turing presenta funciones especiales para dibujar hojas de arce para permitir un dibujo más fácil de la bandera canadiense . [8]
Turing +
Paradigma | multi-paradigma : orientado a objetos , procedimental , concurrente |
---|---|
Diseñada por | Ric Holt y James Cordy |
Desarrollador | Ric Holt y James Cordy |
Apareció por primera vez | 1987 |
Disciplina de mecanografía | estático , manifiesto |
Influenciado por | |
Euclides concurrente , Turing | |
Influenciado | |
Turing orientado a objetos |
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 eventualmente subsumido en Turing orientado a objetos . Turing + Turing original extendido 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 tipo y otras características.
Turing + fue diseñado explícitamente para reemplazar a Euclid concurrente en aplicaciones de programación de sistemas. El sistema operativo TUNIS , originalmente escrito en Concurrent Euclid, fue recodificado a Turing + en su implementación MiniTunis . Turing + se ha utilizado para implementar varios sistemas de software de producción, incluido el lenguaje de programación TXL .
Turing orientado a objetos
Paradigma | multi-paradigma : orientado a objetos , procedimental , concurrente |
---|---|
Diseñada por | Ric Holt |
Desarrollador | Ric Holt |
Apareció por primera vez | 1991 |
Disciplina de mecanografía | estático , manifiesto |
SO | Multiplataforma : Sun-4 , MIPS , RS-6000 |
Influenciado por | |
Turing |
Turing Orientado a Objetos es una extensión del lenguaje de programación Turing y un reemplazo de Turing Plus creado por Ric Holt [9] [10] 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 en el sistema X Window y una versión de demostración. [ cita requerida ] Existen versiones para Sun-4 , MIPS , RS-6000 , NeXTSTEP , Windows 95 y otros.
Ver también
- Euclid (lenguaje de programación)
- Euclides concurrente
- TXL
Referencias
- ^ Fluck, A., Webb, M., Cox, M., Angeli, C., Malyn-Smith, J., Voogt, J. y Zagami, J. (2016). Argumentando a favor de la informática en el plan de estudios de la escuela. Revista de tecnología y sociedad educativas, 19 (3), 38-46.
- ^ [email protected]. "Descargar Turing & RTP (Ready to Program)" . compsci.ca . Consultado el 21 de agosto de 2018 .
- ^ "Página de inicio de Holt Software Associates" . Enero de 2008. Archivado desde el original el 5 de abril de 2010 . Consultado el 10 de abril de 2010 .
- ^ a b "Página de inicio de Holt Software Associates (antigua)" . 2007-11-25. Archivado desde el original el 17 de abril de 2010 . Consultado el 10 de abril de 2010 .
- ^ "Descarga Turing 4.1.1" . Blog compsci.ca. 2007-11-28 . Consultado el 10 de enero de 2009 .
- ^ Hume, Tristan. "Abra Turing" . Consultado el 6 de mayo de 2012 .
- ^ Cordy, James. "Turing + 6.1" . Consultado el 11 de diciembre de 2020 .
- ^ "Documentación de Turing para drawfillmapleleaf" . Consultado el 21 de agosto de 2014 .
- ^ Mancoridis, S; Holt, RC ; Penny, DA (febrero de 1993). "Un marco conceptual para el desarrollo de software". Conferencia Anual de Ciencias de la Computación de ACM (SIGCSE, Indianápolis) : 74–80. ISSN 1041-4517 . OCLC 194807519 . BL Marca de estante 0578.623000.
- ^ Holt, RC (1992). Manual de referencia de Turing (3ª ed.). Toronto : Holt Software Associates. ISBN 978-0-921598-15-2. OCLC 71476276 .
- Este artículo se basa en material extraído del Diccionario gratuito de informática en línea antes del 1 de noviembre de 2008 e incorporado bajo los términos de "renovación de licencias" de la GFDL , versión 1.3 o posterior.
Otras lecturas
- Holt, Richard C ; Cordy, James R (diciembre de 1983). "El informe de la lengua de Turing". Informe de progreso anual . Canadá: Instituto de Investigación de Sistemas Informáticos, Universidad de Toronto . ISSN 0316-6295 .
- Holt, Richard C ; Cordy, James R (diciembre de 1988). "El lenguaje de programación de Turing". Comunicaciones de la ACM . 31 (12): 1410-1423. doi : 10.1145 / 53580.53581 . S2CID 40859457 .
- Holt, Richard C ; Matthews, Philip A; Rosselet, J Alan; Cordy, James R (1988). El lenguaje de programación de Turing: diseño y definición . Englewood Cliffs, Nueva Jersey : Prentice Hall . ISBN 978-0-13-933136-7. OCLC 17377539 .
- Grogono, Peter (1995). Programación con Turing y Turing orientado a objetos . Springer-Verlag. ISBN 978-0-387-94517-0.
enlaces externos
- Foro de ayuda, tutoriales y código fuente de Turing
- Página de Github para el proyecto Open Turing