• Nenhum resultado encontrado

Linguagem de Programação: Introdução à programação

N/A
N/A
Protected

Academic year: 2022

Share "Linguagem de Programação: Introdução à programação"

Copied!
6
0
0

Texto

(1)

Linguagem de Programação: Introdução à programação

Resumo

Referência Bibliográficas

• DEITEL, H. M.; DEITEL, P, J. Java, como programar. 4ª Ed. Porto Alegre: Bookman, 2003.

• BARNES, David J. Programação Orientada a Objetos com Java. Uma introdução prática usando o BlueJ.

4ª Ed. São Paulo: Pearson Prentice Hall, 2009.

Introdução

Programação de computador é o ato de escrever programas de computador, que são uma sequência de instruções escritas usando uma Linguagem de Programação de Computador para executar uma tarefa específica pelo computador. A programação de computadores é divertida e fácil de aprender, desde que você adote uma abordagem adequada.

Paradigmas de Programação

Definição

Um paradigma de programação é um estilo, ou “forma”, de programação. Algumas linguagens facilitam a escrita em alguns paradigmas, mas não em outros. Nunca diga "paradigma de linguagem de programação".

Um paradigma é uma maneira de fazer algo (como programar), não uma coisa concreta (como uma linguagem). Porém, é verdade que se uma linguagem de programação A torna um paradigma de programação B fácil de expressar, então costumamos dizer "A é uma linguagem B" (por exemplo: "Java é uma linguagem de programação orientada a objetos"), mas isso não significa que exista algo como um “paradigma de linguagem orientada a objetos”.

Exemplos de Paradigmas:

Imperativo: Programação com uma sequência explícita de comandos que atualizam o estado.

Declarativa: Programação especificando o resultado desejado, não como obtê-lo.

Estruturado: Programação com estruturas de controle aninhadas limpas, livres de goto.

Procedural: Programação imperativa com chamadas de procedimento.

Funcional (aplicável): Programação com chamadas de função que evitam qualquer estado global.

Nível de função (Combinador): Programação sem nenhuma variável.

Orientado a Objetos: Programação por meio da definição de objetos que enviam mensagens entre si. Os objetos têm seu próprio estado interno (encapsulado) e interfaces públicas. A orientação do objeto pode ser:

o Baseado em classe: os objetos obtêm estado e comportamento com base na associação a uma classe.

o Baseado em protótipo: os objetos obtêm comportamento de um objeto protótipo.

(2)

Linguagens e Paradigmas

Uma linguagem de programação é uma linguagem de computador que os programadores usam para desenvolver programas de software, scripts ou outros conjuntos de instruções para os computadores executarem.

Embora muitas linguagens compartilhem semelhanças, cada uma tem sua própria sintaxe. Depois que um programador aprende as regras, sintaxe e estrutura da linguagem, ele escreve o código-fonte em um editor de texto ou IDE. Então, o programador frequentemente compila o código em linguagem de máquina que pode ser entendida pelo computador. Linguagens de script, que não requerem um compilador, usam um interpretador para executar o script:

Figura 1: Processo de compilação do código-fonte. Fonte: Do próprio autor.

Figura 2: Processo de interpretação do código-fonte. Fonte: Do próprio autor.

Na compilação é gerado um novo programa escrito em linguagem de máquina, sendo ele o que será executado pelo computador. Já na interpretação não é gerado nenhum outro programa, sendo as instruções executadas diretamente após a sua leitura. A velocidade de execução é maior com os programas compilados, pelo fato de já estarem totalmente traduzidos para a linguagem de máquina.

Uma das características de uma linguagem é seu suporte para paradigmas de programação específicos. Por exemplo, Smalltalk tem suporte direto para programação orientada a objetos, então pode ser chamada de linguagem orientada a objetos. Programas escritos em Lisp, Scheme e JavaScript tendem a fazer uso intenso da passagem de funções, por isso são chamados de “linguagens funcionais”, apesar de terem variáveis e muitas construções imperativas.

Observações importantes

Poucas linguagens implementam um paradigma 100%. Quando o fazem, são puros. É incrivelmente raro ter uma linguagem “POO pura” ou uma linguagem “funcional pura”. Muitas linguagens têm alguns escapes; por exemplo, em JavaScript, você irá programar com funções 90% ou mais do tempo, mas se precisar de estado, você pode obtê-lo.

Outro exemplo: muito poucas linguagens implementam OOP da maneira que Alan Kay, “pai” da Orientação a Objetos, imaginou. Muitas linguagens irão facilitar a programação em um ou mais paradigmas. No Scala, você pode fazer programação imperativa, orientada a objetos e funcional com bastante facilidade. Se uma linguagem é propositalmente projetada para permitir a programação em muitos paradigmas, é chamada de linguagem multiparadigma. Se uma linguagem suporta apenas acidentalmente múltiplos paradigmas, não temos uma palavra especial para defini-la.

(3)

A Programação Orientada a Objeto: definição e conceitos

Cunhada por Alan Kay, a programação orientada a objetos, também conhecida como programação POO ou OO, é um paradigma de linguagem de programação. Em um programa orientado a objetos, o código pode ser estruturado como componentes reutilizáveis, alguns dos quais podem compartilhar propriedades ou comportamentos. A programação orientada a objetos pode melhorar a capacidade do desenvolvedor de criar protótipos de software rapidamente, estender a funcionalidade existente, refatorar o código e mantê-lo durante o desenvolvimento.

Conceitos Básicos de POO

Ao programar em uma linguagem de programação orientada a objetos, mantenha os quatro conceitos-chave a seguir em mente:

Encapsulamento: O agrupamento de funções e dados (variáveis) relacionados em um objeto para ajudar a reduzir a complexidade e permitir que partes do código sejam reutilizadas.

Abstração: mostre apenas o essencial para reduzir o abstrato da mudança.

Herança: elimine o código redundante herdando funções e dados de outras classes.

Polimorfismo: altera a forma como um objeto funciona, dependendo dos dados ou da classe.

Exemplos de linguagens de programação orientadas a objetos são: C ++, C #, Java, Python, Simula e Smalltalk.

Um exemplo prático de OO

Digamos que você esteja escrevendo um videogame, onde os jogadores controlam e correm em veículos. Se você estiver usando uma linguagem de programação orientada a objetos, poderá definir uma classe de objetos chamada "veículo". Esta classe pode conter definições das qualidades e comportamentos compartilhados por todos os veículos. Por exemplo: todos os veículos aceleram e desaceleram e consomem combustível. Dentro desta definição de classe, você pode definir métodos (semelhantes a funções) chamados

"acelerar" e "desacelerar" e uma propriedade (um tipo de variável) chamada "combustível", cujo valor você pode obter ou definir.

Em seguida, você pode definir subclasses, também chamadas de classes derivadas ou classes filhas, que herdam métodos e propriedades da classe "veículo". Por exemplo: você pode definir uma subclasse chamada

"motocicleta" com duas rodas e uma subclasse chamada "carro", com quatro rodas. Suas qualidades compartilhadas (aceleração, desaceleração e consumo de combustível) já estão definidas em "veículo", então você não precisa escrevê-las novamente.

Em seguida, você pode instanciar essas subclasses para definir veículos individuais jogáveis. Cada instância da subclasse herdaria métodos e propriedades de todas as suas classes pai e teria propriedades e métodos próprios. Por exemplo, suas propriedades exclusivas podem incluir a cor da tinta ("vermelho", "azul" etc.) e o preço (se o jogador quiser comprá-lo com a moeda do jogo).

Posteriormente, quando quiser alterar o código específico de uma motocicleta, não será necessário alterar a classe "veículo" principal. O código do "veículo" já foi testado e funciona bem, portanto, modificar seu programa exige menos trabalho. Além disso, como menos linhas de código estão sendo modificadas, há uma chance reduzida de que um erro seja introduzido em algum lugar do novo código. Se um erro aparecer, você não precisa se perguntar se ele está no código da classe "veículo", porque essa classe não foi modificada. O desenvolvimento e a manutenção do software podem, portanto, ser mais eficientes, economizando tempo e esforço.

(4)

Exercícios

1.

Programar pode ser definido como:

a) Utilizar programas que executam tarefas no computador.

b) Executar instruções em linguagem natural, alto nível, no computador.

c) Escrever instruções em uma linguagem de programação específica para computador.

d) Utilizar um computador e seus aplicativos de modo a executar as tarefas específicas.

e) Introduzir as instruções que serão executadas, individualmente, no computador.

2.

Paradigmas de programação podem ser definidos como:

a) Linguagens de programação como o C, Java, Python e outras mais.

b) Um modelo ou maneira de programar.

c) Uma aplicação que deve ser utilizada para criar programas de computador.

d) Um sistema de tradução de linguagens de programação, como interpretadores e compiladores.

e) Uma arquitetura para definição de software e hardware de computadores.

3.

O conceito de POO que altera a forma como um objeto funciona, dependendo dos dados ou da classe é o(a):

a) Herança.

b) Abstração.

c) Encapsulamento.

d) Polimorfismo.

e) Classe.

4.

São exemplos de linguagens que se baseiam no paradigma de orientação a objetos:

a) C e C++

b) C e JavaScript c) Java e Cobol d) Java e Python e) C e Python

(5)

5.

De acordo com o que você estudou sobre interpretação e compilação de códigos-fonte, assinale o item correto:

a) A execução de um código compilado é mais lenta do que se o mesmo código fosse interpretado.

b) Na compilação a execução do código é imediata, sendo o código-fonte lido e executado em seguida.

c) Na interpretação temos como resultado a geração de um outro arquivo escrito em linguagem de máquina.

d) A geração do código de máquina na compilação, só se dará quando não existirem mais erros no programa fonte original.

e) Todas as linguagens podem ser interpretadas.

6.

Ainda sobre Programação Orientada a Objetos, assinale o item verdadeiro:

a) Pode ser utilizado por qualquer linguagem.

b) O código não pode ser reutilizado.

c) A abstração, conceito que diz que apenas o essencial deve ser mostrado, é uma de suas características.

d) Propriedades e Métodos tem a mesma função.

e) Torna a manutenção do código difícil devido a sua complexidade.

(6)

Gabaritos

1. C

A letra C é a correta. A definição comum para programação é a que diz que: “programar é escrever instruções em uma linguagem de programação para computadores”.

2. B

A letra B é a alternativa correta. Paradigmas são estilos, modelos ou formas de se programar. Um paradigma define como se deve programar.

3. D

A letra D é a alternativa correta, pois, define exatamente o que é o polimorfismo, que permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea.

4. D

A letra D é a alternativa correta. As únicas linguagens apresentadas nos itens, e que são genuinamente orientadas a objeto são Java e Python.

5. D

A letra D é a alternativa correta. Na compilação é necessário que todos os erros existentes no código- fonte sejam corrigidos, pare que então seja gerado o arquivo em código de máquina.

6. C

A letra C é a alternativa correta, pois, é a que traz o conceito correto de abstração, uma das características da OO.

Referências

Documentos relacionados

Neste presente estudo foi aplicado um questionário sobre a aceitação de um dos seus detergentes comparado a dois concorrentes utilizando a escala ideal , além

- Remover as pastilhas usadas e retornar todo o parafuso de regulagem em seguida montar uma pastilha nova do lado da roda, empurrando com a mão a pinça no sentido do cilindro de

Destaca-se, também, a intensa utilização desse sistema de ensino pelas empresas, o que caracteriza o que se chama de Educação a Distância Corporativa. É visível o

Outras funções podem ter acesso a variáveis locais de uma determinada função quando recebem como argumento o valor ou o endereço destas variáveis (com o endereço, é

Este desafio nos exige uma nova postura frente às questões ambientais, significa tomar o meio ambiente como problema pedagógico, como práxis unificadora que favoreça

Feitiço do Segredo: deposita um segredo numa pessoa de confiança, essa pessoa fica deposita um segredo numa pessoa de confiança, essa pessoa fica sendo o "Fiel do sendo o

• Capacitação e Transferência da metodologia do Sistema ISOR ® para atividades de Coaching e/ou Mentoring utilizando o método das 8 sessões;.. • Capacitação e Transferência

como de distribuição de pessoal, o Centro de Ciências Rurais será integrado pelos departamentos, coordenadorias especiais, cursos de graduação e pós-graduação e