MarkIME


Definição da Sintaxe e Semântica Denotacional
da Linguagem de Programação



MarkIME

Palavras reservadas




           abstract        and        while
           document        else       for
           head            if         not           or              upper      var 


Sintaxe

Valores e Identificadores



    <digito> = 012 | 345                 6 | 7 | 8 | 9

     <sinal> = null | - 
     <letra> = “a” | “A” | “b” | “B” |  
              ... | “z” | “Z” 
    <booleano> = “true” | “false”  
    <quebra_linha> = “\n” (* caractere de quebra de linha *)
    <caractere_escapado> = \$” | “\}” | “\{” | “\n” | “*

Sintaxe

Números

 

    <natural> = <digito> , { <digito> }

    <inteiro> = [ <sinal> ], { <natural> }

    <decimal> = <inteiro>, [“.”, <natural>]    

    <numero> = <inteiro> | <decimal>

Sintaxe

String

 

<caractere> = <letra> | <digito> | <caractere_especial>

<caractere_string> = { <caractere> | <caractere_escapado> },
-<quebra_linha>

<string_comum> = “"”, {<caractere_string>}, ”"” |
{<caractere_string>}

<linha> = { <string_comum> | <modificador> |  
             “$$”, <comando>, “$$”} , <quebra_linha>
<linhas> = { <linha> }

Sintaxe

Operadores

 

    <operador_aritmético> = “+”“-”“/”“*”

    <operador_relacional> = “==”“<=”“>=”                               “<”“>”“!=”

    <operador_booleano_unário> = “not”

    <operador_booleano_binário> = “and”“or”

    <operador_comando> = “=” | “if”“else” | “while”


Sintaxe

Comandos

 

 

<id> = <letra> {<letra>|<digito>}
<declaração_variável> = [“var”], <id> “;”

<atribuição> = <id> “=” <numero> | <data> | <string> 
<comando> = <função_predefinida> | <atribuição> | 
               <condicional> | <expressão_aritmética> | <loop>
<condicional> = "if(", <expressão_booleana>, ")",
                    "{", <comando>, “}”, ["else{", <comando>, "}"]

Sintaxe

Comandos

 


<loop>= "while(", <expressao_booleana>, "){",        <comando>, "}"
<body> = "document{", <linhas>, "}"
<abstract> = "abstract{",<linhas>,"}"
<arquivo_fonte> = <abstract>, <body>    
<cabeçalho> = "[", {<string>}, "]"

<corpo_programa> = [<cabeçalho>], {<comando> | <arquivo_fonte>}

Sintaxe

Expressões

 


 <expressão>   = <expressão_aritmética> |                  <expressão_booleana> |                  <expressão_concatenação>  <modificador> = <italico> | <negrito> |                  <caixa_alta> | <caixa_baixa> |                  <hiperlink> | <lista>
 

Sintaxe

Expressões

 

 

<expressão_aritmética> ::=  <numero> | 
                            "(", <expressão_aritmética> ")" | 
     <expressão_aritmética>, <operador_aritmético>, <expressão_aritmética>


Sintaxe

Expressões

 


<expressão_booleana> ::=      <booleano> |      <operador_booleano_unário> <expressão_booleana> |     <expressão_booleana> <operador_booleano_binário> <expressão_booleana> |     <expressão_aritmética> <operador_relacional> <expressão_aritmética>   

Sintaxe

Expressões

 


<expressão_concatenação> = <string_comum>, “+”,  <string_comum> | 
                           <string_comum>, “+”, <numero> |                           <numero>, “+”, <string_comum>

Sintaxe

Formatação

 

   <italico> = “*”,<string_comum>,*” | “*”,<linhas>,*” 
*texto em itálico*
   <negrito> = **”,<string_comum>,**” | “**”,<linhas>,**”
**texto em negrito**

Sintaxe

Listings

 

   <lista> = {“*”, <linha>} | {<inteiro>, .”, <linha>}
*  list a
*  list g
* list c

Sintaxe

Caixa Alta / Baixa

 

   <caixa_alta>  = “upper(”, <string_comum>, “)” 
   <caixa_baixa> = “lower(”, <string_comum>, “)”
upper(“teste”) = TESTE

Sintaxe

Hiperlinks

 

   <hiperlink> = “[”, {<string_comum>} , “](”, <linha>, “)”
[ link ] ( http://teste.com ) 

Funções Semânticas

Expressões Aritméticas

 


A : ExpressaoAritmetica  (Estado  Número)

Funções Semânticas

Expressões Lógicas

 


B : ExpressaoBooleana  (Estado Booleano)

Funções Semânticas

Expressões Sobre Texto

 


T : ExpressaoTexto  (Estado Texto)

Funções Semânticas

Comandos

 


C : Comando (Estado Estado)

Funções Semânticas

Comando de Atribuição

 


δ : Estado = Identificador Valor

Equações Semânticas

Expressões Aritméticas

 


Equações Semânticas

Expressões Booleanas

 


Equações Semânticas

Expressões Relacionais

 

Equações Semânticas

Expressões Sobre Texto

 

Equações Semânticas

Comando de Atribuição

 



Equações Semânticas

Comando IF

 



Equações Semânticas

Comando IF ELSE

 



Equações Semânticas

Comando WHILE

 



MarkIme - Fases 3 e 4

By Rayssa Küllian

MarkIme - Fases 3 e 4

  • 618