quarta-feira, 7 de outubro de 2009

Módulo 4 - Linguagem de Programação 3





UMA LINGUAGEM DE PROGRAMAÇÃO É UM MÉTODO PADRONIZADO PARA EXPRESSAR INSTRUÇÕES PARA UM CO MPUTADOR. É UM CONJUNTO DE REGRAS SINTÁTICAS E SEMÂNTICAS USADAS PARA DEFINIR UM PROGRAMA DE COMPUTADOR. UMA LINGUAGEM PERMITE QUE UM PROGRAMADOR ESPECIFIQUE SOBRE QUE DADOS UM COMPUTADOR ACTUA, COMO ESTES SERÃO ARMANEZADOS OU TRANSMITIDOS E QUE ACÇÕ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 TRADUZINDO PARA CÓDIGO DE MÁQUINA, QUE É EXECUTADO PELO PROCESSADOR. UMA DAS PRINCIPAIS METAS DAS LINGUAGENS DE PROGRAMAÇÃO É PERMITIR QUE PROGRAMADORES TENHAM UMAMAIOR PRODUTIVIDADE, PERMITINDO EXPRESSAR AS SUAS INTENÇÕES MAIS FACILMENTE DO QUE COMPARADO COM A LINGUAGEM QUE UM COMPUTADOR ENTENDE NATIVAMENTE(CÓDIGO DA MÁQUINA). NESTE SENTIDO, AS LINGUAGENS DE PROGRAMAÇÃO SÃO CONCEBIDAS PARA ADOPTAR UMA SINTAXE DE NÍVEL MAIS ALTO, QUE PODE SER FACILMENTE ENTENDIDA POR PROGRAMADORES HUMANOS. LINGUAGEM DE PROGRAMAÇÃO SÃO FERRAMENTAS IMPORTANTES PARA QUE PROGRAMADORES E ENGENHEIROS DE SOFTWARE POSSAM ESCREVER COM MAIOR ORGANIZÇÃO E RAPIDEZ.


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 (TAMBEM CHAMADO DE CÓDIGO) PARA SÓ DEPOIS EXECUTAR 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 É ARMANEZADA 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. ISTO ACONTECE COM LINGUAGENS COMO PASCAL E C.
SE O TEXTO DO PROGRAMA É TRADUZIDO Á MEDIDA QUE VAI SENDO EXECUTADO, COMO EM JAVASCRIPT PYTHON OU PERL, NUM PROCESSO DE TRADUÇÃO DE TRECHOS SEGUIDOS DA 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 FLEXÍVEIS, JÁ QUE PODEM INTERAGIR COM O AMBIENTE MAIS FACILMENTE. 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 MÁQUINA VIRTUAL APENAS MAIS UM SOFTWARE) COMO O JAVA E O PARROT. HÁ TAMBEM OUTRAS FORMAS DE INTERPRETAR EM QUE OS CÓDIGOS-FONTES, EM VEZ DE SEREM INTERPRETADAS LINHA A LINHA, TÊM BLOCOS COMPILADOS PARA A MEMÓRIA, DE ACORDO COM AS NECESSIDADES, O QUE A PERFORMANCE DOS PROGRAMAS QUANDO OS MESMOS MÓDULOS SÃO CHAMADOS VÁRIAS VEZES, TÉCNICAS CONHECIDA COMO JIT.
FIG.2 - EXEMPLO DE LINGUAGEM DE PASCAL


CLASSIFICAÇÃO DAS LINGUAGENS DE PROGRAMAÇÃO

AS LINGUAGENS DE PROGRAMAÇÃO PODEM SER CLASSIFICADAS E SUB-CLASSIFICADAS DE VÁRIAS FORMAS:
1- TÉCNICA DE PROGRAMAÇÃO LINEAR. EM MATEMÁTICA, PROBLEMAS DE PROGRAMAÇÃO LINEAR SÃO PROBLEMAS DE OPTIMIZAÇÃO, NOS QUAIS A FUNÇÃO PRINCIPAL E AS RESTRIÇÕESSÃO TODAS LINEARES.
2-TÉCNICA DE PROGRAMAÇÃO MODULAR. TRATA-SE DE UM PARADIGNA DE PROGRAMAÇÃO NO QUAL O DESENVOLVIMENTO DAS ROTINAS DE PROGRAMAÇÃO É FEITO ATRAVÉS DE MÓDULOS, QUE SÃO INTERLIGADOS ENTRE SI ATRAVÉS DE UM INTERFACE COMUM.
3- TÉCNICA DE PROGRAMAÇÃO ESTRUTURADA. TRATA-SE DE UMA FORMA DE PROGRAMAÇÃO DE COMPUTADORES QUE PRECONIZA QUE TODOS OS PROGRMAS POSSIVEIS PODEM SER REDUZIDOS A APENAS TRÊS ESTRUTURAS: SEQUÊNCIA, DECISÃO E INTERAÇÃO.
4- TÉCNICA DE PROGRAMAÇÃO ORIENTADA A OBJECTOS. TAMBÉM CONHECIDA COMO (POO) PROGRAMAÇÃO ORIENTADA A OBJECTOS/ (OOP) OBJECT-ORIENTED PROGRAMMING É UM UM PARADIGMA DE ANALISE, PROJECTO E PROGRAMAÇÃO DE SISTEMAS DE SOFTWARE BASEADO NA COMPOSIÇÃO E INTERAÇÃO ENTRE DIVERSAS UNIDADES DO SOFTWARE CHAMADAS DE OBJECTOS.
5- "PREDICURE" OU ROTINA DEPROGRAMAÇÃO PRECIDURE, OU PROCEDIMENTO, É UMA SUB-ROTINA, GERALMENTE SÃO PROCEDIMENTOS MANUAIS CONCEBIDOS E DOCUMENTADOS POR ANALISTAS DE SISTEMAS, PROGRAMADORES E OUTROS QUE ESCREVAM CÓDIGO-FONTE DE DIVERSOS SOFTWARES.
QUANTO A ESTRUTURA DE TIPOS
* FRACAMENTE TIPADA - SMALLTALK
* FORTEMENTE TIPADA - JAVA
* DINAMICAMENTE TIPADA - PYTHON
QUANTO AO GRAU DE ABSTRACÇÃO
* LINGUAGEM DE PROGRAMAÇÃO DE BAIXO NÍVEL, BINÁRIA, COMPOSTA DE ZEROS E UNS(0,1), ININTELIGÍVEL PELO SER HUMANO E EXECUTADA DIARIAMENTE PELA MÁQUINA.
* LINGUAGEM DE PROGRAMAÇÃO DE MÉDIO NÍVEL, COMPOSTA DE SÍMBOLOS MUITO SIMPLES, ENTRE A COMPREENSÃO E A EXECUÇÃO DIRECTA PELA MÁQUINA - ASSEMBLY.
*LINGUAGEM DE PROGRAMAÇÃO DE ALTO NÍVEL, COMPOSTA DE SÍMBOLOS MAIS COMPLEXOS, INTELIGÍVEL PELO SER HUMANO E NÃO EXECUTÁVEL DIRECTAMENTE PEA MÁQUINA, NO NÍVEL DE ESPECIFICAÇÃO DE ALGORITMOS - PASCAL, FORTRAN, ALGOL E SQL.
QUANTO A GERAÇÃO
* PRIMEIRA GERAÇÃO - LINGUAGENS DE BAIXO NÍVEL (ASSEMBLY)
* SEGUNDA GERAÇÃO - AS PRIMEIRAS LINGUAGENS (FORTRAN, ALGOL, ETC)
*TRECEIRA GERAÇÃO - AS PROCEDURAIS E ESTRUTURAS(PASCAL, C).
*QUARTA GERAÇÃO - LINGUAGENS QUE GERAM PROGRAMAS EM OUTRAS LINGUAGENS(JAVA,CTT), LINGUAGENS DE CONSULTA(SQL)
*QUINTA GERAÇÃO - LINGUAGENS LÓGICAS(PROLOG)