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 

MarkIME

Comandos



Blocos
#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}$$
}

MarkIME

Comandos



Iteração
#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)

Made with Slides.com