TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

ATPS Paradigma

Pesquisas Acadêmicas: ATPS Paradigma. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  9/3/2015  •  769 Palavras (4 Páginas)  •  501 Visualizações

Página 1 de 4

Etapa 1 –

Passo 2-

1. Defina o que é uma linguagem de programação sob a conotação sintática e também semântica.

Sintaxe: é o que define a forma de uma linguagem, formado por um conjunto de regras e estabelece como são suas estruturas básicas (as palavras).

Regras léxicas e regras sintáticas formam uma linguagem de programação.

Regras léxicas servem para descrever as combinações válidas de caracteres que formam tokens da linguagem de programação, os tokens são palavras reservadas, identificadores, operadores, etc.

As regras sintáticas vão descrever como os tokens podem ser combinados para assim formarem as instruções válidas :

Exemplos: os comandos, as expressões, as subrotinas, etc.

Semântica: a semântica tem função de descrever o significado de construções sintáticas válidas.

Não existe uma notação padrão e equivalente a BNF para a descrição da semântica de linguagem de programação.

Formalismos diferentes foram desenvolvidos para atender a objetivos diferentes.

Geralmente uma linguagem de programação é descrita informalmente, utilizando-se a linguagem natural como o inglês, português, etc.

2. Descreva o que influi e quais fatores que melhoram os seguintes critérios de avaliação de linguagens de programação: legibilidade, capacidade de escrita e confiabilidade.

Legibilidade influi:

O desenvolvimento e a depuração dos programas.

A manutenção dos programas.

Todo o desempenho das equipes de programação.

Fatores que melhoram a legibilidade:

A abstração de dados.

Os comandos de controle.

A modularização de programas.

A documentação.

As convenções léxicas, a sintaxe e a semântica.

Capacidade de escrita:

Medida da facilidade para confeccionar programa com destino a um domínio de problema que fora escolhido.

Em sua maioria das

características que afetam a legibilidade afetam também a capacidade de escrita.

Escreve determinado programa exige sempre uma releitura do que já fora escrito.

Tendo o domínio dos problemas influenciará no julgamento na capacidade de escrita de uma linguagem.

Utilizar COBOL para produção de relatórios comerciais XAPL é o ideal para manipular matrizes.

Características que contribuem para a capacidade de escrita:

Simplicidade e ortogonalidade.

Suporte pata abstração.

Expressividade.

Confiabilidade:

Mecanismos que facilitem a produção de programas que atendam às suas especificações.

Tipagem forte: o processador deve:

Assegurar que a utilização de dados seja compatível com a sua definição.

Evitar que as operações perigosas, tal como aritmética de ponteiros, seja permitida.

Tratamento de exceções: sistemas de tratamento de exceções permitem construir programas que:

Possuam definições de como proceder em caso de comportamento não usual.

Possibilitem tanto o diagnóstico quanto o tratamento de erros em tempo de execução.

3. Apresente um exemplo de trecho código fácil e difícil de ler, indique de quais linguagens de programação eles se referem. Explique o porquê da diferença.

Exemplo de trecho código difícil.

Programação C# - Código - Projeto Vendas

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace FormVendas

{

public partial class Form1 : Form

{

// constantes

private String[] PRODUTOARRAY = { "Memoria Ram 512MB", "Monitor LCD", "Impressora HP" };

private String PRODUTO = "";

public Form1()

{

InitializeComponent();

// propriedades

txtbPreco.Text = "R$ 0,00";

cmbProduto.Text = "Selecione";

cmbProduto.Items.AddRange(PRODUTOARRAY);

}

private void cmbProduto_SelectedIndexChanged(object sender, EventArgs e)

{

Object ObjProduto = cmbProduto.SelectedItem;

PRODUTO = (string)ObjProduto;

// check

if (PRODUTO == "Memoria Ram 512MB")

{

txtbPreco.Text = "R$ 12,60";

}

else if (PRODUTO == "Monitor LCD")

{

txtbPreco.Text = "R$ 35,00";

}

else if (PRODUTO == "Impressora HP")

{

txtbPreco.Text = "R$ 450,00";

}

}

private void txtbPreco_TextChanged(object sender, EventArgs e)

{

}

private void bntSuporte_Click(object sender, EventArgs e)

{

MessageBox.Show("Suporte Técnico: 0800 123 4320\nE-mail: suporte@zambsis.com.br");

}

private void bntConfirmar_Click(object sender, EventArgs e)

{

if (!rdbCartao.Checked && !rdbVista.Checked)

{

MessageBox.Show("Favor selecionar a forma de pagamento!");

}

}

}

}

Exemplo de trecho código fácil.

Programa em Java Código - Projeto Vendas

package tpdv;

import java.util.*;

/**

* Classe que representa uma venda de produtos feita através de um TPDV.

* Uma venda é composta de várias linhas de detalhe.

* Enquanto a venda não terminou, tais linhas de detalhe podem ser criadas.

* Um pagamento pode ser feita para pagar a venda.

* Pode-se calcular o troco a ser entregue ao

cliente.

*

* @author Craig Larman, Jacques Philippe Sauvé, jacques@dsc.ufpb.br

* @version 1.0

*/

class Venda implements IVenda {

/**

* As linhas de detalhe da venda.

*/

private List linhasDetalhe = new Vector();

/**

* A data da venda.

*/

private Date data = new Date(); // hoje

/**

* Indica se a venda terminou.

*/

private boolean isTerminada = false;

/**

* O pagamento efetuado para a venda.

*/

private IPagamento pagamento;

/**

* Calcula o valor total da venda.

* @return O valor total da venda.

*/

public float total() {

float total = (float)0.0;

Iterator it = linhasDetalhe.iterator();

while(it.hasNext()) {

total += ((ILinhaDetalhe)it.next()).subTotal();

}

return total;

}

/**

* Calcule o troco para a venda, após um pagamento.

* @return O troco para a venda.

*/

public float getTroco() {

return pagamento.getValor() - total();

}

/**

* Chamado para indicar que a venda terminou.

*/

void terminou() {

isTerminada = true;

}

/**

* Obtém o status da venda.

* @return true se a venda terminou; false caso contrário.

*/

boolean isTerminada() {

return isTerminada;

}

/**

* Cria uma linha de detalhe para a venda.

* @param espec A especificação do produto sendo comprado.

* @param quantidade A quantidade de itens (do mesmo produto) sendo comprados.

*/

void criaLinhaDetalhe(IEspecProduto espec, int quantidade) {

linhasDetalhe.add(makeLinhaDetalhe(espec, quantidade));

}

/**

* Faz um pagamento para a venda.

*

@param valorEntregue O valor entregue pelo cliente para pagar a venda.

*/

void façaPagamento(float valorEntregue) throws PagamentoInsuficienteException {

if(valorEntregue < total()) {

throw new PagamentoInsuficienteException("Pagamento insuficiente");

}

pagamento = makePagamento(valorEntregue);

}

// factory methods

protected ILinhaDetalhe makeLinhaDetalhe(IEspecProduto espec, int quantidade) {

return new LinhaDetalheVenda(espec, quantidade);

}

protected IPagamento makePagamento(float valorEntregue) {

return new Pagamento(valorEntregue);

}

}

...

Baixar como  txt (6.9 Kb)  
Continuar por mais 3 páginas »