-
Notifications
You must be signed in to change notification settings - Fork 0
Description
A proposta é implementar o tipo struct para permitir a criação de tipos compostos na linguagem. O struct permitirá definir uma nova estrutura de dados com chaves (ou propriedades) associadas a tipos específicos. Cada struct funciona como um novo tipo primitivo que pode ser utilizado para declarar variáveis, e essas variáveis podem acessar e modificar seus campos por meio das chaves definidas.
Descrição da Funcionalidade
- Sintaxe e Comportamento:
TYPE
IDENTIFIER_1: struct {
key: type;
key: type;
};
Após definir um struct, o IDENTIFIER_1 como exemplo, pode-se então ser utilizado como um tipo primitivo para outras variáveis, permitindo acessos e atribuições de valores às suas chaves:
VAR
IDENTIFIER_2: IDENTIFIER_1;
Para acessar ou atribuir valores, utiliza-se a notação de ponto:
START
IDENTIFIER_2.key1 <- value; // Atribuição do valor
PRINT IDENTIFIER_2.key1; // Leitura do valor
END.
Neste exemplo então:
IDENTIFIER_1define um novo tipo struct com chaves e tipos associados.IDENTIFIER_2é uma variável do tipoIDENTIFIER_1, e você pode acessar suas chaves para leitura e escrita de valores.
- Alternativas & Sinônimos (Aliases):
- estrutura
- record
- object | objeto
Exemplo de Uso
TYPE
Person: struct {
name: string;
age: integer;
};
VAR
people: array[5] of Person;
individual: Person;
START
individual.name <- "John Doe";
individual.age <- 30;
PRINT individual.name; // Saída: John Doe
PRINT individual.age; // Saída: 30
people[0] <- individual; // Atribui o "objeto" todo
PRINT people[0].name; // Saída: John Doe
END.
Neste exemplo, o tipo Person é definido como um struct que possui as chaves name e age. Uma variável individual do tipo Person é criada, e valores são atribuídos às chaves dessa estrutura.
É possível atribuir um individual na lista de people, uma vez que people é um arranjo do tipo Person.
Objetivo
Implementar o tipo struct permitirá que os usuários da linguagem definam tipos personalizados que agrupam diferentes dados sob uma única entidade. Isso adiciona mais flexibilidade e organização ao código, permitindo a criação de estruturas complexas de maneira mais clara e eficiente. Além disso, a implementação de struct contribui para a capacidade da linguagem de suportar programação orientada a dados, melhorando a capacidade de modelar problemas do mundo real de maneira mais natural.