Paradigmas de programação: 1- LINGUAGEM MODULAR

Enviado por editor em qua, 26/05/2021 - 10:22

[ anterior ] [ próximo ]

 

Esse nome deriva, é claro, da linguagem Modula-2, criada por Niklaus Wirth, também inventor do Pascal. A linguagem Modula-2 é fortemente modular, Mas o que quer dizer isso ? O meu conceito temporário de módulo é o seguinte:


 

“Módulo é um conjunto de dados e sub-rotinas que podem ser exportados para um programa para ser usado por ele.”


 

Bom, isso não parece uma grande definição, já que pode coincidir com “biblioteca”, por exemplo. Mas o ponto específico a notar é que linguagens modulares possuem o conceito embutido em sua sintaxe. Existem, inclusive, declarações de implementação e de definição de módulos. Há um bom exemplo em [1] no comentário:


 

MODULE LocMod1;

 

FROM Terminal2 IMPORT WriteString, WriteCard, WriteLn;

 

VAR Index : CARDINAL;

 

MODULE LocalStuff;

EXPORT GetNumber; (* Nothing else is visible outside *)

(* Nothing outside is visible here *)

VAR Counter : CARDINAL;

 

PROCEDURE GetNumber() : CARDINAL;

BEGIN

Counter := Counter + 3;

RETURN Counter;

END GetNumber;

 

BEGIN

Counter := 4; (* This is only run at load time *)

END LocalStuff;

 

BEGIN (* Main program *)

FOR Index := 1 TO 8 DO

WriteString("The count is now ");

WriteCard(GetNumber(),8);

WriteLn;

END; (* Do loop *)

END LocMod1.


 


 

Observe que a linguagem tem comandos específicos para lidar com módulos e suas variáveis, por exemplo:


 

  • MODULE

  • IMPORT

  • EXPORT

  • IMPLEMENTATION MODULE

     


 

Em relação ao EXPORT é importante notar que é um comando que define a interface do módulo com o exterior. Note também que se eu não usar o EXPORT, as variáveis do módulo não ficarão visíveis para as outras partes do programa. Isso é uma boa prática de programação, pois evita erros de reuso de uma variável.

Ainda de nossa referência [1] no comentário, vem uma importante observação que vai substituir o meu conceito anterior de módulo:


 

Devemos divagar um pouco para ver a diferença nesses dois tópicos importantes em Modula-2. Uma procedure é uma seção executável de código, enquanto um módulo é um agrupamento de variáveis, constantes, tipos e procedures. Um módulo nunca é executado, pois é simplesmente um identificador de agrupamento.


 

Note que geralmente existem módulos locais e globais, no que se refere à disponibilidade. MODULE LocalStuff é local, no exemplo.

A linguagem Pascal evoluiu para incorporar também o conceito de módulo. Isso pode ser visto na outrora popular linguagem Delphi.


 


 

 

[ anterior ] [ próximo ]

 

Comentários