12.07.2015 Views

JCML - Java Card Modeling Language: Definição e ... - Ifrn

JCML - Java Card Modeling Language: Definição e ... - Ifrn

JCML - Java Card Modeling Language: Definição e ... - Ifrn

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CAPÍTULO 5. <strong>JCML</strong> - JAVA CARD MODELING LANGUAGE 8501 /*@02 requires m != null;03 requires m.length TAMANHO_MAXIMO_MATRICULA) {07 ISOException.throwIt(SW_TAMANHO_MATRICULA_INVALIDO);08 }09 matricula = m;10 }Figura 5.5: Código Válido: Especificação de Método.Uma especificação leve é definida por um spec-header, que pode ser 1 (uma) ou váriasdefinições de pré-condição (requires-clause), e uma ocorrência opcional do não-terminalgeneric-spec-body.Uma especificação leve pode ser entendida como uma simplificação de uma especificaçãoheavyweight, contudo a omissão de uma cláusula de especificação em uma especificaçãoleve é tratada de forma diferente quando comparada uma uma especificaçãopesada.O padrão para uma cláusula que é omitida em uma especificação leve é o terminalnot specified. Em relação à exceção, a omissão da cláusula signals tem como padrãoapenas permitir exceções declaradas no cabeçalho do método. A não declaração de especificaçãotambém é considerada uma especificação leve.O não-terminal assignable-clause determina quais variáveis podem ser modificadasno contexto do método. Uma omissão deste não terminal em uma especificação levesignifica que qualquer variável pode sofrer modificação em seu estado.As cláusulas ensures e signals são construções <strong>JCML</strong> para pós-condição normal eexcepcional, respectivamente. Estas cláusulas definem estados desejados após a execuçãode um método. A Figura 5.5 mostra uma estrutura válida para especificação de método<strong>Java</strong> <strong>Card</strong> em <strong>JCML</strong>. As linhas 1-4 definem os predicados para a pré-condição do método.Como o foco principal deste trabalho é o tratamento de alguns tipos de especificaçõesleve para <strong>Java</strong> <strong>Card</strong>, as demais cláusulas na linguagem não são detalhadas nesta seção,contudo, todas as regra <strong>JCML</strong> estão definidas no Apêndice C. A próxima seção descreveráo compilador <strong>JCML</strong>, sua estrutura, tipo de código gerado e restrições.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!