GPSS
# GPSS

General Purpose Simulation System (GPSS, en español: Simulación de Sistemas de Propósito General) es un lenguaje de programación de propósito general de simulación a Eventos discreto.

Tiene su origen a fines de la década de 1950 cuando Geoffrey Gordon estaba trabajando en la Bell Telephone Laboratories. En sus orígenes Gordon era el único programador y, cuando el lenguaje todavía no tenía nombre se lo conocía dentro de IBM como el “Gordon Simulator”. Su primer nombre fue General Purpose Simulator (GPS) (en octubre de 1961). Rápidamente su nombre cambió a General Purpose Systems Simulator (GPSS). Es un lenguaje de simulación por eventos, los elementos que se inyectan al modelo (transacciones) mediante el bloque GENERATE son puestos en la cadena de eventos futuros (Future Event Chain) con el instante de su futuro nacimiento, las tareas que estos elementos realizan mediante el bloque ADVANCE generan eventos futuros con el instante de terminación de la tarea.

El GPSS detiene el reloj y simula todo lo que tiene que simular para un determinado instante (eventos corrientes), cuando no tiene más nada por simular mira en la cadena de eventos futuros qué es lo próximo que tiene que hacer y coloca el reloj para ese instante con lo que los eventos que eran futuros se transforman en corrientes. El GPSS ejecuta todos los eventos corrientes hasta que no haya ningún evento y así se repite el proceso hasta que un TERMINATE con operando distinto de cero alcance la cantidad pedida en el START.

El usuario describe las acciones que los elementos que se mueven por el sistema realizan (lo hace mediante los bloques que representan a esas acciones) y el GPSS se encarga de realizar la simulación al momento que recibe el START con la cantidad de transacciones terminadas que el usuario quiere simular.

GPSS es un lenguaje que persiste en el tiempo dado que su diseño fue extraordinariamente avanzado para la época. Es asimismo muy utilizado para la enseñanza de simulación de eventos discretos. Existen desarrollos como JGPSS e ISDS que se basan en GPSS, y proyectos como FONWebGPSS o GPSS Interactivo, cuyos objetivos incluyen optimizar la enseñanza de simulación, y de este lenguaje en particular.

Existen otros lenguajes de simulación tales como SIMSCRIPT II.5 y Simula.

