Skip to content

danilolcabral/plp

Repository files navigation

Paradigma Orientado a Contratos

Projeto da Disciplina Paradigmas de Linguagens de Programação do CIn UFPE, que tem como objetivo estender a linguagem orientada a objetos para suportar algumas das principais características do paradigma orientado a contratos.

BNF

Programa ::= "{" Declaracao ";" Comando "}"

Declaracao ::= DecClasse
      | DecClasse "," Declaracao

DecClasse ::= DecClasseTradicional
      | DecClasseContrato

Comando ::= Atribuicao
      | ComDeclaracao
      | While
      | IfTheElse
      | IO
      | Skip
      | New
      | ChamadaMetodo
      | Comando ";" Comando

IO ::= "write" "(" Expressao ")"
      | "read" "(" Id ")"
      | "escreverNaBlockchain" "(" Expressao ")"
      | "lerDaBlockchain" "(" Expressao ")"
      | "transferir" "(" Expressao ")"

DecClasseTradicional ::= "classe" Id ["extends" Id] {" DecVariavel ";" DecConstrutor "," DecProcedimentoTradicional "}"

DecClasseContrato ::= "classe" "contrato" Id {" DecVariavel ";" DecConstrutor "," DecProcedimento "}"

DecProcedimento ::= DecProcedimentoTradicional
      | DecProcedimentoPagavel
      | DecProcedimento "," DecProcedimento

DecProcedimentoTradicional ::= "proc" Id "(" [ListaDeclaracaoParametro] ")" "{" Comando "}"

DecProcedimentoPagavel ::= "proc" "pagavel" Id "(" ParametrosPagaveis [ListaDeclaracaoParametro] ")" "{" Comando "}"

Equipe

About

Repositório contendo o projeto da disciplina Paradigmas de Linguagens de Programação

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages