Prograph es un lenguaje de programación visual , orientado a objetos , de flujo de datos y multiparadigma que utiliza símbolos icónicos para representar acciones que se deben realizar sobre los datos. Los entornos de desarrollo de software Prograph comerciales, como Prograph Classic y Prograph CPX, estuvieron disponibles para las plataformas Apple Macintosh y Windows durante muchos años, pero finalmente se retiraron del mercado a fines de la década de 1990. El soporte para el lenguaje Prograph en macOS ha reaparecido recientemente con el lanzamiento del entorno de desarrollo de software Marten. [1]
Historia
La investigación sobre Prograph comenzó en la Universidad de Acadia en 1982 como una investigación general sobre lenguajes de flujo de datos, estimulada por un seminario sobre lenguajes funcionales dirigido por Michael Levin. Se utilizaron diagramas para aclarar la discusión, lo que llevó a la siguiente idea: "ya que los diagramas son más claros que el código, ¿por qué no hacer que los diagramas mismos sean ejecutables?". Así nació Prograph (Programación en gráficos) como un lenguaje de flujo de datos visual. Este trabajo fue dirigido por el Dr. Tomasz Pietrzykowski, con Stan Matwin y Thomas Muldner como coautores de los primeros artículos. De 1983 a 1985, se construyeron prototipos de investigación en una estación de trabajo gráfica Three Rivers PERQ (en Pascal , con los datos visualizados como bolas de fuego que se mueven por enlaces de datos) y un VAX con un terminal Tektronix , y se programó un compilador experimental en una IBM PC . Este trabajo fue continuado en la Universidad Técnica de Nueva Escocia por Pietrzykowski y el Dr. Philip Cox, incluida una versión realizada en Prolog .
En 1985, se empezó a trabajar en un prototipo comercializable en Macintosh, el único ordenador de bajo precio y ampliamente disponible con soporte gráfico de alto nivel disponible en ese momento. A principios de 1986, este prototipo fue adquirido por The Gunakara Sun Systems (posteriormente rebautizada como TGS Systems ) para su comercialización, TGS era anteriormente una empresa de consultoría formada por Pietrzykowski en la Universidad de Acadia . Trabajando con Pietrzykowski y Cox, Terry Kilshaw contrató y gestionó el equipo de desarrollo original, con Jim Laskey como desarrollador principal. En 1987, Mark Szpakowski sugirió la fusión de la orientación a objetos con el flujo de datos visual, creando un sistema de "flujo de objetos". Después de casi cuatro años de desarrollo, la primera versión comercial, v1.2, se presentó en la conferencia OOPSLA en Nueva Orleans en octubre de 1989. Este producto ganó el premio MacUser Editor's Choice Award de 1989 a la mejor herramienta de desarrollo. La versión 2.0, lanzada en julio de 1990, agregó un compilador al sistema.
En 1990, TGS cambió su nombre a Prograph International (PI). Aunque las ventas fueron lentas, en 1992 se inició el desarrollo de una nueva versión, Prograph CPX ( Cross-Platform eXtensions ), que pretendía crear aplicaciones totalmente multiplataforma. Esta versión se lanzó en 1993 y fue seguida inmediatamente por el desarrollo de un marco de aplicación cliente-servidor. A pesar del aumento de las ventas, la empresa no pudo mantener los costos operativos y, tras un intento fallido de financiación a fines de 1994, entró en quiebra a principios de 1995.
A medida que avanzaba la administración, la dirección y los empleados de PI formaron una nueva empresa, Pictorius , que adquirió los activos de PI. Poco después, se inició el desarrollo de una versión de Prograph CPX para Windows. Aunque nunca se lanzó oficialmente, se pusieron a disposición de los clientes de Prograph CPX versiones de Windows de forma regular, algunos de los cuales adaptaron aplicaciones existentes escritas en Macintosh Prograph, con distintos grados de éxito.
Después de los cambios de gestión en la nueva empresa, el énfasis pasó del desarrollo de herramientas al desarrollo de aplicaciones web y programación personalizada. En abril de 2002, la parte de desarrollo web de la empresa fue adquirida por Paragon Technology Group de Bermudas y rebautizada como Paragon Canada. El nombre de Pictorius y los derechos sobre el código fuente de Prograph quedaron en manos de McLean Watson Capital, una empresa de inversiones con sede en Toronto que había financiado en gran medida a Pictorius. Durante un tiempo apareció una referencia a Pictorius en la página de cartera de la primera, pero desde entonces ha desaparecido. La versión de Windows de CPX se lanzó posteriormente para su uso gratuito y estuvo disponible durante algún tiempo para su descarga desde los restos del sitio web de Pictorius (enlace a continuación).
A finales de los años 90, un grupo de usuarios de Prograph ("Prographers") que se autodenominaba "The Open Prograph Initiative" (OPI) se formó con el objetivo de mantener la viabilidad de Prograph frente a los avances de los sistemas operativos de Apple y Microsoft. Durante un tiempo, el grupo también intentó crear un nuevo lenguaje de programación visual de código abierto que sirviera como sucesor de Prograph, pero con la llegada del entorno de programación visual Marten de Andescotia, la participación en el grupo prácticamente cesó.
El lenguaje Prograph es compatible con el IDE Marten de Andescotia Software. [1]
Descripción
Durante la década de 1970, la complejidad de los programas aumentó considerablemente, pero las herramientas utilizadas para escribir programas eran, en general, similares a las utilizadas en la década de 1960. Esto generó problemas al trabajar en proyectos más grandes, que se volvían tan complejos que incluso cambios simples podían tener efectos secundarios difíciles de comprender por completo. Una considerable investigación sobre el problema llevó a muchos a pensar que el problema era que los sistemas de programación existentes se centraban en la lógica del programa, mientras que, en realidad, el propósito de un programa era manipular datos. Si los datos que se manipulan son el aspecto importante del programa, ¿por qué los datos no son el "ciudadano de primera clase" del lenguaje de programación? Sobre esa base, se desarrollaron varios sistemas de programación nuevos, incluida la programación orientada a objetos y la programación de flujo de datos .
Prograph llevó estos conceptos más allá, introduciendo una combinación de metodologías orientadas a objetos y un entorno completamente visual para la programación. Los objetos se representan mediante hexágonos con dos lados, uno que contiene los campos de datos y el otro los métodos que operan sobre ellos. Al hacer doble clic en cualquiera de los lados se abriría una ventana que mostraría los detalles de ese objeto; por ejemplo, al abrir el lado de las variables se mostrarían las variables de clase en la parte superior y las variables de instancia debajo. Al hacer doble clic en el lado del método se muestran los métodos implementados en esta clase, así como los heredados de la superclase. Cuando se hace doble clic en un método, se abre otra ventana que muestra la lógica.
En Prograph, un método se representa mediante una serie de iconos, cada uno de los cuales contiene una instrucción (o un grupo de ellas). Dentro de cada método, el flujo de datos se representa mediante líneas en un gráfico dirigido . Los datos fluyen en la parte superior del diagrama, pasan por varias instrucciones y, finalmente, vuelven a salir por la parte inferior (si hay alguna salida).
Varias características del sistema Prograph son evidentes en esta imagen de una operación de ordenamiento de base de datos. La barra superior muestra que este método, concurrent sort, se pasa en un único parámetro, A Database Object. Luego, este objeto se introduce, a través de las líneas, en varias operaciones. Tres de ellas extraen un índice nombrado ( indexAetc.) del objeto mediante la getteroperación (la salida del getter no conectado pasa el objeto "entero") y luego pasa el índice extraído a una operación de ordenamiento. La salida de estas operaciones de ordenamiento se pasa, junto con una referencia a la base de datos original, a la operación final, update database. La barra en la parte inferior de la imagen representa las salidas de este método y, en este caso, no hay conexiones con él y, por lo tanto, este método no devuelve un valor. Observe también que, aunque este es un método de alguna clase, no hay self; si se necesita self, se puede proporcionar como entrada o buscar.
En un lenguaje de flujo de datos, las operaciones pueden realizarse tan pronto como tengan entradas válidas para todas sus conexiones. Eso significa, en términos tradicionales, que cada operación en este método podría llevarse a cabo al mismo tiempo. En el ejemplo de la base de datos, todas las ordenaciones podrían realizarse al mismo tiempo si la computadora fuera capaz de proporcionar los datos. Los lenguajes de flujo de datos tienden a ser inherentemente concurrentes, lo que significa que son capaces de ejecutarse en sistemas multiprocesador "naturalmente", una de las razones por las que despertaron tanto interés en la década de 1980.
Los bucles y las ramas se construyen modificando operaciones con anotaciones. Por ejemplo, un bucle que llama al doitmétodo en una lista de datos de entrada se construye arrastrando primero el operador doit, luego adjuntando el modificador de bucle y proporcionando la lista como entrada al bucle. Otra anotación, "inyección", permite que el método en sí se proporcione como entrada, lo que hace de Prograph un lenguaje dinámico hasta cierto punto.
Ejecución
El entorno de desarrollo y ejecución integrado de Prograph también permitió la depuración visual. Se admitieron los mecanismos habituales de punto de interrupción y de un solo paso. Cada operación en un diagrama de flujo de datos se resaltaba visualmente a medida que se ejecutaba. Un mecanismo similar a una información sobre herramientas mostraba los valores de los datos cuando se mantenía el mouse sobre un enlace de datos cuando se detenía en modo de depuración. La visualización de la pila de ejecución permitió la ejecución tanto hacia atrás como hacia adelante. Para muchos usuarios, los aspectos de ejecución visual del lenguaje eran tan importantes como sus funciones gráficas en tiempo de edición.
La característica de depuración en tiempo de ejecución más importante era la capacidad de cambiar el código sobre la marcha durante la depuración. Esto permitía corregir errores durante la depuración sin necesidad de volver a compilar.
Véase también
- LabVIEW – Plataforma de diseño de sistemas y entorno de desarrollo
- PWCT – Lenguaje de programación visual
- Spreadsheet 2000 : una hoja de cálculo única escrita en Prograph
Referencias
- ^ ab "Productos: Marten IDE 1.6". Andescotia Software . Consultado el 31 de mayo de 2019 .
Lectura adicional
- Cox, PT; Pietrzykowski, T. (1984), "Ayudas avanzadas de programación en Prograph", Informe técnico 8408 , Halifax, Nueva Escocia: Facultad de Ciencias de la Computación, Universidad Técnica de Nueva Escocia.
- Cox, PT; Mulligan, IJ (1984), "Compilación del lenguaje funcional gráfico Prograph", Informe técnico 8402 , Halifax, Nueva Escocia: Facultad de Ciencias de la Computación, Universidad Técnica de Nueva Escocia.
- Matwin, S.; Pietrzykowski, T. (1985), "Prograph: un informe preliminar", Lenguajes informáticos , 10 (2): 91–126, doi :10.1016/0096-0551(85)90002-5.
- Kilshaw, Terry (mayo de 1991), "Prograph Primitives", Revista MacTech , 7 (5).
- Kilshaw, Terry (enero de 1992), "Prograph 2.5", MacTech Magazine , 8 (1).
- Kilshaw, Terry (enero de 1993), "Una clase de botón pictórico en Prograph", MacTech Magazine , 9 (1).
- Kilshaw, Terry (marzo de 1994), "Una revisión de Prograph CPX 1.0", MacTech Magazine , 10 (3): 64–74.
- Schmucker, Kurt (noviembre de 1994), "Prograph CPX - Un tutorial", Revista MacTech , 10 (11).
- Schmucker, Kurt (enero de 1995), "Comandos y deshacer en Prograph CPX", Revista MacTech , 11 (1).
- Schmucker, Kurt (marzo de 1995), "Filtros y tamices en Prograph CPX", Revista MacTech , 11 (3).
- Schmucker, Kurt (mayo de 1995), "MacApp y Prograph CPX: una comparación", MacTech Magazine , 11 (5).
- Shafer, Dan (1994), El poder de Prograph CPX , EE. UU.: The Reader Network, ISBN 1-881513-02-5.
- Steinman, SB; Carver, KG (1995), Programación visual con Prograph CPX , Manning, ISBN 978-1-884777-05-9
Enlaces externos
- Prograph CPX: un tutorial: un excelente artículo sobre el sistema, que data de poco después del lanzamiento original de Prograph CPX
- Lenguajes de programación visual: una encuesta: incluye una breve descripción general del sistema Prograph
- La Iniciativa Open Prograph: página de inicio del grupo interesado en crear una versión de código abierto de Prograph
- Las Crónicas de la Computadora - Lenguajes de Programación Visual (1993) en YouTube
