Original Article: SIMULA Page
Author: Jarek Sklenar

Página SIMULA

(c) Jarek Sklenar

" Foi uma grande melhoria em relação à maioria de seus sucessores "

(O comentário de Tony Hoare sobre Algol 60)

Simulação orientada a objetos (OOS) pode ser considerado como um caso especial de Programação Orientada a Objetos (OOP). Alguns princípios de OOP como a existência de um número variável de casos de objetos interferentes têm sido usados de forma padrão no ambiente de simulação por um longo tempo, geralmente usando outra terminologia. O idioma SIMULA (usado para ser chamado SIMULA 67) é o primeiro idioma orientado a objetos verdadeiros. Sendo um pouco antigo, ainda tem a maioria (e todos os importantes) mecanismos e princípios de OOP. Com exceção da linguagem de programação Beta, outras linguagens OOP amplamente utilizadas são subconjuntos conceituais da linguagem SIMULA cujo padrão foi definido em 1967. Algumas coisas como classes, herança, métodos virtuais, etc. foram definidas em SIMULA há muito tempo antes de serem redescobertas pelo boom OOP nos anos 80. Para saber mais sobre SIMULA, visite a página de ASU (Associação dos Usuários SIMULA) com outras referências.


A SIMULA tem sido criticada de que, de um lado, existe uma sofisticação de alto nível da própria linguagem combinada com capacidades de simulação bastante limitadas, exceto o controle de tempo do outro lado. A falta de ferramentas de simulação de apoio, como a coleta transparente de estatísticas, filas mais avançadas do que as listas básicas disponíveis na classe de sistema Simset, geração de relatórios, etc., é causada pelo fato de que o idioma foi formalmente congelado em 1968. Essa decisão foi controversa. A vantagem é que existe apenas uma SIMULA com diferenças mínimas entre as implementações. Por outro lado, o desenvolvimento futuro foi dificultado. SIMULA é, portanto, mais um fundo OOP para a criação de ferramentas de simulação que um ambiente de simulação completo e amigável. Provavelmente, a ferramenta mais conhecida de tais ferramentas é DEMOS (Birtwistle, 1979). O DEMOS não é uma sublass de simulação da classe do sistema e, portanto, os usuários não podem usar processos de simulação. Estou convencido de que a simulação discreta orientada a processos é a maneira mais avançada e natural de criar modelos de simulação. O processo de classe de Simulação é a primeira superclasse desse tipo. As facilidades de processamento de simulação são, portanto, um tipo de padrão que foi copiado em muitas ferramentas de simulação posteriores. Para manter os processos de Simulação disponíveis sem quaisquer restrições, escrevi uma extensão simples para a Simulação que torna seu uso mais fácil de usar. Existem duas classes principais:

  • statsim declara classes para objetos observados estatisticamente (com ou sem tempo) juntamente com uma variável aleatória com distribuição de tabela empírica. Os objetos estatísticos podem gerar um histograma e podem salvar a distribuição (cdf) em um arquivo. Os objetos do número aleatório empírico podem ser carregados, portanto, é possível usar os resultados da simulação em outros modelos. Os procedimentos para algumas distribuições aleatórias teóricas também estão disponíveis.
  • quesim declara classes para simulação de redes de enfileiramento. Existem classes para um cliente genérico, vários tipos de filas, servidor multicanal e toda a estação de serviço de fila única. Além das estatísticas usuais sobre o comprimento da fila, o tempo de espera, a utilização de servidores, etc., também é possível obter custos de espera e de fornecimento de serviços.
Eu chamo a ferramenta QUESIM. Visite QUESIM homepage para ler mais sobre isso e para baixá-lo.


O grande evento na história da SIMULA está aqui: você pode obter uma porta gratuita da CIM SIMULA para Windows Isso é muito fácil de instalar e usar. Petr Novak um graduado da Charles University, Praga (supervisionado por Evzen Kindler) criou uma porta incrivelmente curta (tudo em um disquete !!) e que pode ser instalada por todos dentro de vários minutos. Para baixar a porta CIM / win32, visite a página Cim 3.33 (port for 32-bit Windows). Observe que esta versão do SIMULA faz uso de toda a memória e que contém um Terminal de classe aprimorada para controle de tela de texto, incluindo mouse. Os gráficos atualmente não estão disponíveis. Os estudantes da UOM podem obter a porta diretamente - contate-me.


Você também pode procurar o documento Introdução ao OOP na SIMULA com base em uma palestra apresentada na Universidade de Malta por ocasião do 30º aniversário da SIMULA.


Para saber mais sobre a história de Simula, há dois artigos muito interessantes:

Holmevik, J.R. (1994). " Compilando SIMULA: um estudo histórico da gênese tecnológica. "IEEE Annals of the History of Computing, 16 (4), págs. 25-37, 1994. O documento também foi apresentado na 18ª Conferência ASU em 1992 e publicado na SIMULA Newsletter Vol.20 (1), outubro de 1992.

Graças à permissão gentil do Sr. Holmevik, você pode fazer o download de uma cópia local de seu artigo Compilando SIMULA.

Krogdahl, S. (2003). " The Birth of Simula" Este artigo é publicado nos trabalhos da Conferência HiNC 1 em Trondheim, junho de 2003 (IFIP WG 9.7, em cooperação com IFIP TC 3). Editores: Janis A. Burbenko jr., John Impagliazzo, Arne Sølvberg.


Prossiga para o SIMULA Mailing Center para procurar uma lista de pessoas envolvidas na Modelagem e simulação orientada a objetos. Esta lista certamente não está completa, então fique à vontade para se inscrever para participar.