• Nenhum resultado encontrado

INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO

N/A
N/A
Protected

Academic year: 2022

Share "INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO"

Copied!
7
0
0

Texto

(1)

INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO

1. DEFINIÇÃO

Linguagem de programação é um método padronizado para expressar instruções em um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias.

O conjunto de palavras (tokens), compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para o código de máquina, que é executado pelo processador.

Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez.

Linguagens de programação também tornam os programas menos dependentes de computadores ou ambientes computacionais específicos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador em vez de ser diretamente executado.

Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta independência da máquina onde seria executada.

2. CÓDIGO DE MÁQUINA

Todo computador possui um conjunto de instruções que seu processador é capaz de executar. Essas instruções são representadas por sequências de bits, normalmente limitadas pelo número de bits do registrador principal da CPU.

As instruções correspondem a seqüencias muito simples de operações, como transferir um dado em memória para a CPU ou somar dois valores e são normalmente interpretadas por micro-código.

Um programa em código de máquina consiste de uma sequência de números que significam uma sequência de instruções a serem executadas. É normal a representação da linguagem de máquina por meio de números (opcodes) constantes e variáveis em sistema binário ou hexadecimal. Alguns computadores também tem seu opcodes representados no sistema octal.

(2)

Microprocessadores tem normalmente seus códigos de operação como múltiplos de 2, 8 e 16, pois usam arquiteturas com registradores de 8, 16, 32, 64 ou 128 bits (em 2006).

Porém, existem máquinas com registradores de tamanho diferente.

Os programas de computador raramente são criados em linguagem de máquina, mas devem ser traduzidos (por compiladores) para serem executados diretamente pelo computador. Existe a opção, em voga atualmente, de não executá-los diretamente, mas sim por meio de um interpretador, esse sim rodando diretamente em código de máquina e previamente compilado.

Programar diretamente em código de máquina costuma ser exaustivamente difícil, pois requer o conhecimento dos opcodes, dos operandos e dos formatos de cada instrução.

Por esse motivo, foi criada uma linguagem de programação chamada linguagem de montagem (Assembly Language), composta de códigos mnemônicos que, do ponto de vista técnico, é tão próxima do processador quanto o código de máquina, mas é humanamente mais fácil de se compreender uma vez que seus códigos são geralmente acrônimos do inglês. Por exemplo “mov” de mover, “rep” de repetição e assim por diante. O compilador para a linguagem Assembly é chamado Assembler. Ele traduz o códigos mnemônicos para o código de máquina propriamente dito. Na verdade, mesmo Assembly só é usado em ocasiões onde o uso de uma linguagem de programação de alto nível é impossível ou proibitivo.

3. INTERPRETAÇÃO E COMPILAÇÃO

Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretação, que juntas podem ser chamadas de tradução. Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executar (ou rodar, como se diz no jargão da computação) o programa, então diz-se que o programa foi compilado e que o mecanismo utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa). A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal e C.

Se o texto do programa é traduzido à medida em que vai sendo executado, como em Javascript, Python ou Perl, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente (freqüentemente linguagens interpretadas são chamadas também de script).

Embora haja essa distinção entre linguagens interpretadas e compiladas, as coisas nem sempre são tão simples. Há linguagens compiladas para um código de máquina de uma máquina virtual (sendo esta apenas mais um software, que emula a máquina virtual sendo executado em uma máquina real), como o Java e o Parrot. E também há outras formas de

(3)

blocos "compilados" para a memória, de acordo com as necessidades, o que aumenta o desempenho dos programas quando os mesmos módulos são chamados várias vezes, técnica esta conhecida como JIT (Just-In-Time).

Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o código java para o código intermediário (e portável) da JVM (java virtual machine – máquina virtual java). As JVMs originais interpretavam esse código, de acordo com o código de máquina do computador hospedeiro, porém atualmente elas compilam, segundo a técnica JIT o código JVM para código hospedeiro.

A tradução é tipicamente feita em várias fases, sendo as mais comuns a Análise léxica, a Análise sintática ou Parsing, a Geração de código e a Otimização. Em compiladores também é comum a Geração de código intermediário.

TECNOLOGIA JAVA

1. BREVE HISTÓRICO

Em 1991 a empresa Norte Americana SUN MICROSYSTEMS iniciou um projeto, chamado GREEN, de desenvolvimento de programas específicos para pequenos dispositivos eletrônicos de consumo, como PDA (Personal Digital Assistent) e eletrodomésticos em geral. O projeto era liderado por James Gosling.

O fato de se construir programas específicos para cada tipo de dispositivo passou a ser a grande e maior dificuldade do projeto. A idéia, então, foi construir um sistema operacional que suportasse programas que fossem utilizados por diversos equipamentos. A tentativa inicial foi construir este sistema operacional utilizando a linguagem C++, mas a utilização da linguagem trouxe diversas dificuldades que não atendiam à proposta do projeto. A estratégia foi abandonar o uso da linguagem C++ e construir uma nova linguagem. A nova linguagem foi batizada de Oak (referência ao Carvalho que James Gosling observava de seu escritório), influenciada pelas linguagens Eiffel, Smalltalk e Objetive C. A sintaxe do Oak era a mesma do C e C++.

Com a nova linguagem foi possível desenvolver o Sistema Operacional, que recebeu o nome de GREENOS e, também, uma interface gráfica padronizada. A Sun passou a se dedicar ao desenvolvimento do Star7, um PDA avançado que foi concluído em 1993. A tentativa de aplicação do Star7 surgiu numa concorrência pública de Tecnologia de TV a cabo, mas a Sun não ganhou a concorrência. O projeto GREEN teve seu financiamento cortado, a SUN abandonou a ênfase aos dispositivos eletrônicos e passou a se dedicar à Internet.

A linguagem desenvolvida pelo projeto GREEN passou a se chamar JAVA (referência ao nome da cidade origem de um tipo de café importado pelos Norte- Americanos e consumidos pela equipe de James Gosling). Até 1994 não havia aplicação definida para a tecnologia Java, até que Jonathan Payne e Patrick Naughton criaram um

(4)

novo navegador para a web (Webrunner) que podia executar programas escritos em Java via Internet.

Em 1995 a SUN disponibilizou gratuitamente um kit de desenvolvimento de software chamado JDK (Java Developer’s Kit) para os sistemas Solaris, Windows 95 e Windows NT. Posteriormente foram disponibilizados kits para OS/2, Linux e Macintosh. A aceitação do Java cresceu e em 1997 a SUN lançou o JDK 1.1, com melhorias significativas e em 1999 lançou o JDK 1.2, com outras inovações. A partir desta época, a SUN retomou seus projetos originais e passou a liberar novas versões da tecnologia Java.

2. ORGANIZAÇÃO

A tecnologia Java de desenvolvimento compõe-se de três partes:

(i) Ambiente de desenvolvimento;

(ii) Linguagem de programação;

(iii) Interface de Programas Aplicativos (Applications Programming Interface–API).

O ambiente de desenvolvimento é um conjunto de ferramentas utilizadas para a construção de aplicativos. As ferramentas presentes no kit são: compilador (javac);

interpretador de aplicativos (java); visualizador de applets (appletviewer) e gerador de documentação (javadoc). Existem vários ambientes de desenvolvimento integrado (Integrated Development Environment – IDES), como, por exemplo, o RealJ, JCreator, Eclipse, NetBeans, Forte, JBuilder, Websphere e Visual Age. A linguagem Java é composta por um conjunto de palavras e símbolos utilizados pelos programadores para escrever programas. Há um conjunto de palavras reservadas para escrever expressões, instruções, estruturas de decisão, estruturas de controle, métodos, classes e outros. A interface de programas aplicativos (API) é o conjunto de classes e interfaces que abrigam atributos e métodos.

A figura abaixo fornece uma visão geral do que é a tecnologia Java.

composição da tecnologia Java

(5)

Java é, então, a junção de uma linguagem, um ambiente de programação e uma API e será tratada como uma tecnologia.

Há dois tipos de tecnologia, a incorporada e a não incorporada. A primeira representa os instrumentos que auxiliam na realização de tarefas dentro de uma organização e a segunda diz respeito ao conhecimento sobre como realizar um trabalho utilizando esses instrumentos.

Java representa uma tecnologia incorporada. O conhecimento que as pessoas têm de Java, permitirá a sua alocação na realização de determinada tarefa. Esse conhecimento é o que representa a tecnologia não incorporada.

3. JAVA E AS PLATAFORMAS

Plataforma é um conjunto de elementos que possibilitam a execução de softwares aplicativos. Para rodar um aplicativo são necessários: um computador e um sistema operacional. Porém, os sistemas operacionais são compatíveis apenas com determinado tipo de computador e os programas compilados com as tecnologias tradicionais são compatíveis apenas com o sistema operacional utilizado. Por exemplo, se um aplicativo é escrito e compilado em C++ para ser executado em Windows, então não será possível executá-lo em nenhuma outra plataforma (Linux, Solaris, Macintosh, OS/2, etc.).

Na tecnologia Java, o mesmo arquivo gerado num sistema operacional pode ser executado em qualquer outro sistema e, por conseguinte, em qualquer arquitetura de computador, isso é chamado de portabilidade. O quadro abaixo mostra o processo de criação e execução de programas em tecnologias tradicionais e em tecnologia Java.

processo de criação e execução de programas

(6)

Fases do processo de criação de um programa em Java:

(i) Criação em editor e armazenamento em disco;

(ii) Compilação, gerando arquivos com código intermediário (bytecodes);

(iii) Execução do interpretador Java que coloca os bytecodes em memória;

(iv) Verificador de bytecodes: verifica se todas as instruções são válidas e se não violam restrições de segurança;

(v) Interpredador lê os bytecodes e os converte para código binário específico da plataforma atual.

Para isto, o Sistema Operacional deverá conter um JRE (Java Runtime Environment – Ambiente de execução Java).

4. FINALIDADE, VANTAGENS E PERSPECTIVAS DA TECNOLOGIA JAVA Os tipos básicos de “softwares” desenvolvidos em Java são: aplicativos, “applets” e

“servlets”.

Os aplicativos são programas executados sobre um sistema operacional, sem a intermediação de um “browser” (navegador web), ou seja, são programas executados em

“desktop” (monousuário) ou LAN (Local Área Network – rede local).

“Applets” são pequenos programas armazenados em um servidor web e carregados pelo “browser” no computador do cliente.

“Servlets” também são programas armazenados em um servidor da internet. A diferença é que eles não são descarregados no computador do cliente e sim no próprio servidor.

Opcionalmente é possível incluir programação Java em páginas HTML de um servidor web, utilizando a linguagem “Script”. A JSP (Java Server Pages) oferece a possibilidade de se escrever instruções Java dentro de “tags” nas próprias páginas HTML.

A tecnologia Java é: simples (fácil aprendizado); orientada a objetos (os programas são compostos por classes, que representam categorias de objetos e podem herdar atributos e métodos de outras classes); robusta; segura; compilada; interpretada; independente da plataforma (portável); suporte a programação concorrente e de sistemas distribuídos. Java elimina vários tipos de erros e os programas não provocam GPF’s (General Protection Fail – Falha de proteção geral). Nos programas escritos em Java, um sistema automático de gerenciamento de memória realiza a tarefa de liberar recursos. Os programas em Java sempre são verificados antes de serem executados pelo browser, impedindo, assim, quaisquer danos ao computador.

O fato dos programas Java serem compilados em códigos intermediários, próximos às instruções de máquina, faz com que eles sejam mais rápidos do que seriam se Java fosse simplesmente interpretada. Por outro lado eles são mais lentos que os programas, de outras

(7)

Java também permite o controle de concorrência e de multiprocessamento (realização de mais de uma tarefa ao mesmo tempo), que produz um aumento da sensibilidade interativa dos programas e seu comportamento em tempo real.

Os programas em Java podem ter mais de uma linha de execução (thread) sendo lida ao mesmo tempo. O início e a prioridade das linhas de execução são configuráveis. Isto faz com que o usuário possa continuar interagindo com o programa mesmo quando ele está realizando uma operação demorada. Também são oferecidos recursos de sincronização para as linhas de execução.

Além de tudo isto, Java oferece facilidades para programação de sistemas distribuídos. Sua API contém uma biblioteca de classes e interfaces muito rica para se trabalhar com “sockets”, TCP/IP, RMI (Remote Method Call – Invocação remota de métodos), etc.

A Internet é um ambiente heterogêneo formado por diferentes tipos de computadores rodando diferentes sistemas operacionais. As características próprias de Java a tornam a tecnologia ideal para o desenvolvimento de aplicações para esse ambiente. Assim o crescimento da Internet significa o crescimento de Java.

A tecnologia Java também tem provocado mudanças significativas nos processos de engenharia de software e tende a alterar o modo como os programas são produzidos, distribuídos e utilizados.

Além de se afirmar como a tecnologia ideal para o desenvolvimento de software para a Internet, Java tende a ganhar mais força no futuro próximo enquanto tecnologia para o desenvolvimento de aplicativos tradicionais, principalmente os de banco de dados cliente/servidor.

Por fim, há um movimento na SUN no sentido de retornar às origens de Java e retomar com mais força o desenvolvimento de software para pequenos dispositivos eletrônicos.

BIBLIOGRAFIA BÁSICA

Santos, Rui R. dos, Programando em Java 2 – Teoria e Aplicações, Rio de Janeiro, Axcel books, 1ª edição, 2004.

BIBLIOGRAFIA COMPLEMENTAR

Morgan, Michael, Java 2, para programadores profissionais, Axcel books, 1ª edição, 2004.

Deitel, H.M., Java, como Programar, São Paulo, Pearson, 1º reimpressão, 2006.

Referências

Documentos relacionados

Além de conferir os centros culturais e a Praça Mauá, visitantes vão ganhar 3,5 quilômetros da nova Orla Conde, passeio público que começa no Armazém 8 do Cais do Porto, na

A tabela 25 apresenta os resultados brutos desta avaliação em relação à característica busca e a tabela 26 exibe o resultado ponderado para esta característica.. A tabela 27

Através do estudo da previsão da sua vida útil das superfícies em betão à vista, pretende-se contribuir para que os decisores tenham mais informação relativamente ao

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, é

Em terceiro lugar, alguns caminhos potencialmente efetivos de intervenção ainda não receberam a devida atenção; são necessárias mais pesquisas sobre essas abordagens e mais

A conguração adotada é de um elemento injetor bipropelente central com razão de mis- tura (vazão de massa de oxidante dividida pela vazão de massa do combustível) de 2; seis

Esse segundo parâmetro tem um valor default de zero; com isso, quando chamamos a função com apenas um parâmetro (a string), recebemos de volta todos os seus prefixos com tamanho

[r]