MarkIME
Requisitos do Domínio e Levantamento dos
Conceitos Para A Linguagem de Programação
MarkIME
O que é?
- Linguagem simples para gerar LateX (markup)
- Fácil leitura e escrita
- Adicionando flexibilidade
MarkIME
Características da Linguagem
-
Facilitar tarefas como escape de caracteres especiais, acentuação, entre outros;
-
Simplificar a construção de tabelas e inclusão de imagens, legendas, entre outros;
-
Comando de repetições e condições inexistentes em LateX.
MarkIME
Elementos Essenciais
1 . Operadores
- Operações Sobre Texto: concatenação, uppercase, etc;
- Operações Aritméticas: soma, multiplicação, etc;
- Operações Lógicas: E / OU.
MarkIME
Elementos Essenciais
2 . Declarações
- Constantes: a linguagem suportará constantes numéricas e de string;
- Variáveis: a linguagem suportará variáveis e strings.
MarkIME
Elementos Essenciais
3 . Funções
- Matemáticas: realizar operações sobre números;
- Manipulação de Texto: realizar operações sobre strings, fazer tratamento de case, busca, etc.
MarkIME
Tipos de Dados
- Inteiro: 1, 2, -3, 42, ...
- Ponto Flutuante: 0.0, -0.5, ...
- String: "Meu Texto", "Artigo", ...
- Booleano: true, false
MarkIME
Expressões
- Literais de cadeias de caracteres - strings: representados por palavras cercadas de aspas (e.g., "palavras")
- Literais inteiros decimais: representados em base decimal (e.g., 1, 2, 3)
MarkIME
Aplicação de Funções
upper("minha string")
"MINHA STRING"
concat("minha", "String")
"minhaString"
MarkIME
Avaliação de Expressões
- Ordem de Avaliação
Mesma ordem da avaliação matemática usual, isto é, da esquerda para a direita com ordem de precedência:
(), *, /, +, -
MarkIME
Comandos
- Atribuição
var x = y
var x = y
MarkIME
Comandos
- Blocos
#head [...]
var x
#document {
var y = 2
$$z = x + y$$
}
#head [...]
var x
#document {
var y = 2
$$z = x + y$$
}
MarkIME
Comandos
- Condicionais
#head [...]
var x = 0
#document {
var y = 2
// mostra o menor valor
$$ if( y<x ) {y} else {x}$$
}
#head [...]
var x = 0
#document {
var y = 2
// mostra o menor valor
$$ if( y<x ) {y} else {x}$$
}
MarkIME
Comandos
- Iteração
#head [...]
var x = 5
#document {
// itera cinco vezes
$$for( var y = 0; y < x; y++ ){ y }$$
}
#head [...]
var x = 5
#document {
// itera cinco vezes
$$for( var y = 0; y < x; y++ ){ y }$$
}
MarkIME
Forma de Veiculação
- Vinculação Estático
- Verificação de Tipos (fracamente tipada)
- Vinculação Estático
MarkIme - Fases 1 e 2
By Rayssa Küllian
MarkIme - Fases 1 e 2
- 502