140 likes | 248 Vues
Alunos: Carlos Eduardo Pontual (ceplc) Fernanda d'Amorim (frsa) Filipe Motta (famb) Leopoldo Teixeira (lmt) . Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1. Linguagem OO2. Estende a LOO1 com os seguintes recursos:
E N D
Alunos: Carlos Eduardo Pontual (ceplc) Fernanda d'Amorim (frsa) Filipe Motta (famb) Leopoldo Teixeira (lmt) Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1)Projeto PLP 2008.1
Linguagem OO2 • Estende a LOO1 com os seguintes recursos: • Herança simples entre classes • Redefinição de métodos • Ligação Dinâmica • Expressão InstanceOf • Comando Cast • Superclasse Object • Modificadores de acesso em métodos • Modificador super
Proposta do Projeto • Inserção do conceito de Interfaces • Implementação de interfaces (uma ou mais) por classes concretas • Herança simples entre interfaces • Inserção do conceito de Classes Abstratas • Inserção do conceito de métodos abstratos • Classes abstratas devem possuir pelo menos um método abstrato • Herança simples entre classes abstratas
Modificações na BNF - 1 • Definição de programa • Definição de programa • Definição de programa Programa ::= "{" [ Declaracoes ";" ] Comando "}" Declaracoes ::= DecInterface • | DecClasse • | Declaracoes “,” Declaracoes
Modificações na BNF - 2 • Definição de Interface DecInterface ::= • "interface" Id ["extends" Id] "{" ListaAssinaturaMetodo "}" ListaAssinaturaMetodo ::= AssinaturaMetodo • | AssinaturaMetodo "," ListaAssinaturaMetodo AssinaturaMetodo ::= • modAcesso "proc" Id "(" [ListaDeclaracaoParametro] ")"
Modificações na BNF - 3 • Definição de Classe Abstrata DecClasse ::= DecClasseAbstrata • | DecClasseConcreta DecClasseAbstrata ::= "abstract" "classe" Id ["extends" Id] "{" CorpoClasseAbstrata "}" CorpoClasseAbstrata ::= DecVariavel • | DecProcedimento • | CorpoClasseAbstrata";" CorpoClasseAbstrata
Modificações na BNF - 4 • Definição de Classe Concreta DecClasseConcreta ::= "classe" Id ["extends" Id] ["implements" ListaInterface] "{" CorpoClasseConcreta "}" CorpoClasseConcreta ::= DecVariavel • | ListaDecProcConcreto • | CorpoClasseConcreta ";" CorpoClasseConcreta ListaInterface ::= Id | Id "," ListaInterface
Modificações na BNF - 5 • Definição de Procedimentos DecProcedimento ::= DecProcConcreto • | DecProcAbstrato • | DecProcedimento "," DecProcedimento DecProcConcreto ::= AssinaturaMetodo "{" Comando "}" ListaDecProcConcreto ::= DecProcConcreto • | DecProcConcreto "," ListaDecProcConcreto DecProcAbstrato ::= "abstract" AssinaturaMetodo
Status do Projeto • Inserção do conceito de Interfaces • Implementação de interfaces (uma ou mais) por classes concretas • Herança simples entre interfaces • Inserção do conceito de Classes Abstratas • Inserção do conceito de métodos abstratos • Classes abstratas devem possuir pelo menos um método abstrato • Herança simples entre classes abstratas