|
Acadêmico(a): Paulo Henrique da Silva |
Título: Implementação de Unidades para Processos Concorrentes no Ambiente Furbol |
|
Introdução: |
Em 1987, com o artigo apresentado por Silva (1987), no I Simpósio Brasileiro de Engenharia de Software, é relatada a experiência do início do desenvolvimento de uma nova linguagem de programação. Em 1992 houve uma continuidade do trabalho, sob o título de “Editor Dirigido por Sintaxe”, realizada pelo acadêmico Douglas Nazareno Vargas (Vargas, 1992), através de uma pesquisa financiada pela Universidade Regional de Blumenau. Após o trabalho de Vargas (1992), vários outros acadêmicos deram continuidade ao referido trabalho. Joilson Marcos da Silva apresentou no primeiro semestre de 1993 seu Trabalho de Conclusão de Curso com o título de “Desenvolvimento de um ambiente de programação para a linguagem portugol” (Silva, 1993). No segundo semestre de 1993, o acadêmico Douglas Nazareno Vargas (Vargas, 1993), através do seu Trabalho de Conclusão de Curso, voltou a dar continuidade ao ambiente apresentando mais um trabalho: “Definição e implementação no ambiente windows de uma ferramenta para o auxílio no desenvolvimento de programas”. Em 1996 Jorge Luiz Bruxel (Bruxel, 1996) deu continuidade ao trabalho, denominando-o de FURBOL (acrônimo de FURB e ALGOL). Em seguida, Radloff (1997), Schmitz (1999), André (2000) e Adriano (2001) acrescentaram novas extensões ao ambiente FURBOL. Ao longo dos trabalhos realizados, o FURBOL deixou de ser apenas uma linguagem de programação para se tornar um ambiente integrado onde é possível editar um código fonte e compilá-lo. Na compilação, o código fonte é traduzido para um código intermediário de três endereços gerando um código equivalente na linguagem Assembly (código de montagem). Através da utilização do montador Turbo Assembler, o código de montagem é convertido para um código de máquina executável em microprocessadores 8088. Partindo do último trabalho realizado (Adriano, 2001), este trabalho adicionará uma extensão à linguagem para dar suporte à concorrência em nível de unidade de programa. Segundo Ghezzi (1991), unidades de programa são agrupamentos de instruções implementando uma abstração de ação. Sebesta (2000) define concorrência em nível de unidades como o ato de executar duas ou mais unidades de programa simultaneamente. Unidades de programa concorrentes aumentam a flexibilidade de programação. Foram inventadas originalmente para serem utilizadas nas tarefas de sistemas operacionais e, muitas vezes, também são utilizadas para simular sistemas físicos reais que consistem em vários subsistemas concorrentes (Sebesta, 2000). A extensão desenvolvida neste trabalho para a linguagem FURBOL também inclui um mecanismo de sincronização para possibilitar a interação em tempo de execução entre as unidades concorrentes. O mecanismo de sincronização escolhido são os semáforos. O principal motivo que levou a desenvolver este trabalho foi estudar a teoria de compiladores, processos concorrentes e arquitetura de computadores, aplicando os conhecimentos na implementação de extensões para a linguagem de programação FURBOL. Outro motivo foi o fato de que esta linguagem vem sendo desenvolvida na Universidade Regional de Blumenau através de Trabalhos de Conclusão de Curso (TCCs), sendo este trabalho uma continuação da série. |
|
|