Your SlideShare is downloading. ×
Linguagens de programação   03-12-09
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Linguagens de programação 03-12-09

7,050
views

Published on


0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,050
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
201
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1
  • 2. ESCOLA SECUNDÁRIA DE SANTO ANDRÉ Curso e Turma: Instalação e Manutenção de Sistemas Informáticos, EFA 4S Disciplina: Programação Web Nome do Trabalho: Linguagens de Programação Nome do Aluno: Miguel Marques, Paulo Rosário e Bruno Gonçalves Nome do Formador: Guilherme Batista Data do Trabalho: 03-12-2009 2
  • 3. ÍNDICE 1. Introdução pág: 3 2. Índice pag. 4 3. Principais concitos na área da programaçãoC pág: 5 4. Tipos de Linguagens pág: 6 a 8 5. História da Linguagem pág: 9 a 11 6. Objectivos e Características da Linguagem C pág: 11 a 16 7. Código Fonte pág: 17 8. Código Máquina pág: 17 a 18 9. Software de tradução pág: 18 10. Compilador pág: 18 a 19 11. Interpretador pág: 20 12. Conclusão pág: 21 13. Referencias Bibliográficas pág : 22 3
  • 4. Introdução Neste trabalho vai ser feita uma pequena abordagem ao mundo da programação, seus principais conceitos e os vários tipos de linguagens de programação. Depois ficaremos a conhecer uma das línguas mais influentes no interior da programação, quais as suas características e os seus objectivos. Vamos também neste trabalho abordar a definição de código máquina e código fonte, falaremos também de compiladores e interpretadores quais as suas funções as suas diferenças. 4
  • 5. Principais conceitos na área da programação Antes de falarmos do que são, de como são constituídas e de como evoluíram, será apresentada a definição de certos conceitos importantes e que serão varias vezes falados mais á frente. Algoritmo “É uma sequência finita de instruções bem definidas e não ambíguas, sendo que cada uma pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita” Wikipedia É a forma através da qual resolvemos problemas, é a descrição, de forma lógica, dos passos que devem ser tomados para ser realizada uma dada tarefa. Programa Um programa de computador, ou software, é um conjunto de instruções que descrevem a forma como uma tarefa que será executada por um computador. Um programa oferece ao utilizador a possibilidade de realizar uma ou mais tarefas específicas. A programação será então a ciência que nos permite criar programas. Linguagens de programação Assim como outra língua qualquer, as linguagens de programação obedecem a um conjunto de regras sintácticas e semânticas usadas para definir o programa. É utilizado um conjunto de códigos composto, por palavras e símbolos, que constituem o código fonte do programa. Para o processador executar um programa, o código fonte necessita de ser traduzido para código máquina. Existem vários tipos de linguagens, sendo que cada uma delas tem características e aplicações diferentes. Toda a linguagem de programação têm um ambiente de programação, por exemplo bloco de notas do Windows, e algumas podem ter mais que um ambiente. Podemos classifica-las de acordo com o paradigma de programação, gerações, quanto ao grau de abstracção e de acordo com o tipo de estrutura. 5
  • 6. Paradigma de Programação O paradigma é basicamente a ideia central onde se baseia a linguagem, existindo 4 paradigmas: Paradigma Imperativo – que se baseia em comandos e procedimentos Ex: Pascal, C e Fortran. Paradigma Orientado a Objectos - baseado em objectos e classes. Ex: Java, Simula e Smalltalk. Paradigma Funcional – que se baseia em funções. Ex: Haskel, Lisp, ML, Scheme. Paradigma Lógico - baseado na lógica de predicados, factos e regras. Ex: Prolog, Life, Mercury Diferentes níveis ou graus de abstracção das linguagens - Linguagens de máquina; - Linguagens de baixo nível; - Linguagens de alto nível. Linguagens de máquina As linguagens de máquina são linguagens de baixo nível e fornecem ao computador as operações fundamentais para seu funcionamento. Cada instrução é geralmente formada por um código de operação e um ou dois endereços de memória. É a única linguagem compreendida pelo processador, pois utiliza unicamente a notação binária, 0's e 1's ou On e Off. Apesar de ser mais rápida que a linguagem de alto nível, é bastante mais difícil de utilizar. A programação de um algoritmo complexo neste tipo de linguagem é complexa, cansativa e fortemente sujeita a erros, sendo depois quase impossível encontrar o erro. As linguagens de máquina são dependentes do processador, ou seja, uma determinada linguagem de máquina só poderá usada por um tipo de computador. Exemplo de uma pequena porção do código máquina do processador desenhado por Von Neumman em 1946: 000000101011110010100000001011111100100000000011001110101000 6
  • 7. Linguagens de baixo nível Foram projectadas minimizar as dificuldades da programação em notação binária. São bastante próximas das linguagens de máquina, mantendo a mesma estrutura e conjunto de instruções, mas permite que o programador utilize nomes, chamados mnemónicos, e símbolos em lugar dos 0’s e 1’s. São chamadas de linguagens Assembly ou montagem. Os programas são executados com maior velocidade de processamento e ocupam menos espaço na memória. Por outro lado os programas em Assembly tem pouca portabilidade, o código criado para um tipo processador não serve para outro diferente, e não são estruturados o que torna a programação mais difícil. Nesta linguagem a maioria das instruções são representações simbólicas de instruções de linguagem máquina. O processamento de um programa em linguagem simbólica requer tradução para linguagem de máquina antes de ele ser executado pelo processador. Linguagens de alto nível São as mais próximas à linguagem humana e mais distantes das linguagens de máquina, o que torna mais fácil a sua compreensão. Utilizam uma sintaxe estruturada que torna o seu código mais legível e fazem uso de palavras reservadas como READ, WRITE, TYPE, etc. São precisos compiladores ou interpretadores para gerar instruções do microprocessador, que permitem, teoricamente, que possa a linguagem possa ser utilizada em qualquer computador. Os interpretadores fazem a interpretação de cada instrução do programa fonte e executa-a dentro de um ambiente de programação, por exemplo Basic e Java. Os compiladores traduzem todas as instruções do programa fonte gerando um programa executável (*. exe), por exemplo C e Pascal. Em relação ás linguagens de baixo nível os problemas são resolvidos de forma mais fácil e rápida. Gerações 1º Geração - Linguagem máquina ou binária e Assembly; 2º Geração – Sistemas de execução em tempo real e desenvolvimento de gestores de Base de Dados; Ex: COBOL, BASIC e FORTRAN IV/V. 7
  • 8. 3º Geração - capacidade procedural e estrutura; Ex: Pascal, C e SIMULA 4º Geração - sistemas especialistas, desenvolvimento de inteligência artificial e execução dos programas em paralelo. Ex: SQL e QBE. 5º Geração – Linguagens de especificação de problemas E: LISP e PROLOG. Estrutura de tipos . Fracamente tipada – Ex: Smalltalk . Fortemente tipada – ex: Java e Ruby . Dinamicamente tipada – ex: Perl, Ruby e Python . Estáticamente tipada - ex: Java e C Domínios de aplicação . Cientificas – ALGOL, BASIC e FORTRAN. . Comerciais – COBOL. 8
  • 9. História da Linguagem C Poder-se ia dizer que o C é uma das maravilhas das linguagens de programação. Muitos dos programas existentes hoje foram escritos nesta linguagem. O C foi desenvolvido nos laboratórios na década de 70.Possui as seguintes características; portabilidade entre máquinas e sistemas operacionais. Dados compostos em forma estruturados, total interacção tanto com o SO como a máquina e o código compacto e rápido. Nos anos 80, C era a linguagem mais utilizada por programadores, por permitir a escrita intensiva de todas as características das linguagens anteriores. O Próprio UNIX e Linux foram escritos em C, assim como o front end do MS-DOS, Windows e as aplicações Office mais usadas no mundo (OpenOffice.org, Microsoft Office, embora cada uma delas incluir as suas próprias linguagens de script), sendo também utilizada em aplicações gráficas e criação de efeitos especiais nos filmes Strar Trek e Star Wars.E as vantagens de programas extremamente rápidos e pequenos, desvantagens é o tempo de desenvolvimento lento e sujeito a erros. Kenneth Thompson (à esquerda) e Dennis Ritchie (à direita), os criadores da linguagem C. O desenvolvimento inicial da linguagem C ocorreu nos laboratórios Bell da AT&T entre 1969 e 1973. Segundo Ritchie, o periodo mais criativo ocorreu em 1972. Deu-se o nome C à linguagem porque muitas das suas características derivaram de uma linguagem de programação anterior chamada B. Há vários relatos que se referem à origem do nome B: Ken Thompson dá crédito à linguagem de programação BCPL, mas ele também criou uma outra linguagem de programação chamada Bon, em honra da sua mulher Bonnie. Por volta de 1973, a linguagem C tinha se tornado suficientemente poderosa para que grande parte do núcleo de UNIX, originalmente escrito na linguagem de programação, fosse reescrito em C. Este foi um dos primeiros núcleos de sistema operativo que foi implementado numa linguagem sem ser o Assembly, sendo exemplos 9
  • 10. anteriores do sistema. Em 1978, Ritchie e Kernighan publicaram a primeira edição do livro The C Programming Language. Esse livro, conhecido pelos programadores de C como "K&R", serviu durante muitos anos como uma especificação informal da linguagem. A versão da linguagem C que ele descreve é usualmente referida como "C de K&R". (A segunda edição do livro cobre o posterior padrão ANSI C, descrito abaixo.) K&R introduziram as seguintes características na linguagem:  Tipos de dados struct  Tipos de dados long int  Tipos de dados unsigned int  O operador =+ foi alterado para +=, e assim sucessivamente (a análise léxico do compilador confundia o operador =+. Por exemplo, i =+ 10 e i = +10). C de K&R é frequentemente considerado a parte mais básica da linguagem cujo suporte deve ser assegurado por um compilador C. Durante muitos anos, mesmo após a introdução do padrão C ANSI, ele era considerado o "menor denominador comum" em que programadores de C se apoiavam quando uma portabilidade máxima era desejada, já que nem todos os compiladores eram actualizados para suportar na íntegra o padrão C ANSI, e o código C de K&R razoavelmente bem escrito é também válido em relação ao C ANSI.Nos anos que se seguiram à publicação do C K&R, algumas características "não-oficiais" foram adicionadas à linguagem, suportadas por compiladores da AT&T e de outros vendedores.  Funções void e tipos de dados void  Funções que retornam tipos struct ou union  Campos de nome struct num espaço de nome separado para cada tipo struct  Atribuição a tipos de dados struct  Qualificadores const para criar um objecto só de leitura  Uma biblioteca-padrão que incorpora grande parte da funcionalidade implementada por vários vendedores  Enumerações  O tipo de ponto-flutuante de precisão simples 10
  • 11. Durante os finais da década de 1970, a linguagem C começou a substituir a linguagem BASIC como a linguagem de programação de microcomputadores mais usada. Durante a década de 1980, foi adoptada para uso no PC IBM, e a sua popularidade começou a aumentar significativamente. Ao mesmo tempo, Bjarne Stroustrup, juntamente com outros nos laboratórios Bell, começou a trabalhar num projecto onde se adicionavam construções de linguagens de programação orientada por objectos à linguagem C. A linguagem que eles produziram, chamada C++, é nos dias de hoje a linguagem de programação de aplicações mais comum no sistema operativo Windows da companhia Microsoft; C permanece mais popular no mundo UNIX. Objectivos e características da Linguagem C A linguagem C surgiu com o objectivo de facilitar a criação de programas mais extensos e com um menor número de erros apelando ao paradigma da programação algorítmica, sobrecarregando menos o autor do compilador, visto as características desta linguagem serem complicadas. Dentro da linguagem C temos as seguintes características: . É uma linguagem nuclear extremamente simples, com funcionalidades não essenciais tais como as funções matemáticas ou manuseamento de ficheiros (arquivos), fornecida por um conjunto de bibliotecas de rotinas padronizadas; . A sua focalização no paradigma de programação procedimento; . Têm um sistema de tipos simples que evita várias operações que não fazem sentido; . O Uso de uma linguagem de pré-processamento, o pré-processador de C, para tarefas tais como a definição de macros e a inclusão de múltiplos ficheiros de código fonte; . Ponteiros dão maior flexibilidade à linguagem; 11
  • 12. . Acesso de baixo nível através de inclusões de código Assembly no meio do programa C; . Parâmetros que são sempre passados por valor para as funções e nunca por referência (É possível simular a passagem por referências com o uso de ponteiros); . Definição do alcance lexical de variáveis; Estruturas de variáveis, (structs), que permitem que dados relacionados sejam combinados e manipulados como um todo. Apesar das suas características atrás descritas, faltam a linguagem C outras que se podem encontrar em outras linguagens, como por exemplo: . Segurança de tipo; . Colector de lixo (mais comum em linguagens interpretadas); . Vectores que crescem automaticamente; . Classes ou objectos com comportamento; . Closures; . Funções aninhadas; . Programação genérica; . Sobrecarga de operadores; . Meta-programação; . Apoio nativo de multithreading e comunicação por rede 12
  • 13. O conceito de Variáveis As variáveis no C podem ter qualquer nome se duas condições forem satisfeitas: o nome deve começar com uma letra ou sublinhado (_) e os caracteres subsequentes devem ser letras, números ou sublinhado (_). Há apenas mais duas restrições: o nome de uma variável não pode ser igual a uma palavra reservada, nem igual ao nome de uma função declarada pelo programador, ou pelas bibliotecas do C. Variáveis de até 32 caracteres são aceitas. Mais uma coisa: é bom sempre lembrar que o C é "case sensitive" e portanto deve-se prestar atenção às maiúsculas e minúsculas. É uma prática tradicional do C, usar letras minúsculas para nomes de variáveis e maiúsculas para nomes de constantes. Isto facilita na hora da leitura do código; Quando se escreve código usando nomes de variáveis em português, evita-se possíveis conflitos com nomes de rotinas encontrados nas diversas bibliotecas, que são em sua maioria absoluta, palavras em inglês. Os Tipos do C O C tem 5 tipos básicos: char, int, float, void, double.O double é o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais precisão. O void é o tipo vazio, ou um "tipo sem tipo". Constantes Constantes são valores que são mantidos fixos pelo compilador. Já usamos constantes neste curso. São consideradas constantes, por exemplo, os números e caracteres como 45.65 ou 'n', etc. - Constantes dos tipos básicos Abaixo vemos as constantes relativas aos tipos básicos do C: Exemplos de Constantes char 'b' 'n' '0' int 2 32000 -130 long int 100000 -467 short int 100 -30 unsigned int 50000 35678 float 0.0 23.7 -12.3e-10 double 12546354334.0 -0.0000034236556 13
  • 14. As estruturas de controlo de fluxo são fundamentais para qualquer linguagem de programação. Sem elas só haveria uma maneira do programa ser executado: de cima para baixo comando por comando. Não haveria condições, repetições ou saltos. A linguagem C possui diversos comandos de controlo de fluxo. É possível resolver todos os problemas sem utilizar todas elas, mas devemos nos lembrar que a elegância e facilidade de entendimento de um programa dependem do uso correcto das estruturas no local certo. O Comando if, comando else, comando switch, comando for, comando while, comando break, comando continue, comando goto. Um exemplo: #include <stdio.h> int main () { int num; printf ("Digite um numero: "); scanf ("%d",&num); if (num>10) printf ("nnO numero e maior que 10"); else if (num==10) { printf ("nnVoce acertou!n"); printf ("O numero e igual a 10."); } else if (num<10) printf ("nnO numero e menor que 10"); return(0); } Software para linguagem C 14
  • 15. "IDE para programação de executáveis Win32, console ou GUI na linguagem C/C++." Por existirem várias linguagens de programação disponíveis no mercado, cada uma delas tinha de possuir pontos onde se especializavam mais para conseguir cativar o interesse dos programadores. Dentro da maioria das linguagens os seus objectivos a atingir são: . COBOL- Processamento de Registos . PASCAL- Ensino de Técnicas de Programação . FORTRAN- Cálculo Científico . LISP e PROLOG- Vocacionam para áreas de Inteligência Artificial Já na linguagem C não existe nenhuma área de destino em particular, habitualmente se denomina por General Purpose, esta é uma das vantagens, pois tem a capacidade de adaptar qualquer desenvolvimento num projecto, como sistemas operativos, interfaces gráficas, processamento de registos, ect. A linguagem C é utilizada também para escrever compiladores de outras linguagens, é uma linguagem extraordinariamente robusta e maleável.  Rapidez – consegue atingir performance semelhante á do Assembly, usando instruções de alto nível, isto é instruções semelhantes há linguagem PASCAL ou COBOL, mesmo para aceder a mecanismos de mais baixo nível, como o de endereçamento ou manipulação de Bits.  Simples – de sintaxe extremamente simples e o número de palavras reservadas, tipos de dados básicos e operadores é reduzido, fazendo diminuir a quantidade de tempo e esforço necessário à aprendizagem da linguagem.  Portável – existente um standard (ANSI) que define características de qualquer compilado, deste modo o código escrito numa máquina, pode ser então transportado para outra máquina e compilado sem qualquer alteração, (ou com um numero reduzido). 15
  • 16.  Popular – é conhecida internacionalmente e utilizada, esta porem muito bem documentada em livros, revistas de especialidade, manuais, etc. Existe compiladores para qualquer tipo de arquitecturas e computadores.  Modular – permite o desenvolvimento modular em aplicações, facilitando a separação de projectos em módulos distintos, independentes, recorrendo à utilização de funções específicas de cada módulo.  Alto Nível – há a possibilidade de manipular a memória directamente, utilizando o endereço de qualquer objecto (seja variável ou função), manipulando directamente a memória sem ter qualquer restrição o que aumenta a flexibilidade da linguagem.  Livrarias muito poderosas – tem um número reduzido de palavras-chave, o que indica que as suas capacidades são limitadas na realidade. A maior parte das funcionalidades da linguagem são-lhe adicionadas pela sua utilização de funções existentes em livrarias adicionais e realizam todo o tipo de tarefas, deste a escrita no ecrã ate ao seu processamento de strings, etc.  Macros – Utilizada no desenvolvimento de aplicações, reduzindo assim a necessidade de escrita de funções distintas na realização do mesmo processamento, em todos os tipos de dados. As Macros permitem aumentar a velocidade de execução sem este ter que aumentar a complexidade de escrita do código.  Focus – Permite ao programador a escrita do código, como pretender, no qual o programa pode ser escrito numa só linha e dividido em inúmeras linhas. Apenas tem de se preocupar com objectivo e a correcção da aplicação que está a desenvolver, do modo a que no final o resultado seja o desejado, n é necessário formatar o código a partir da coluna X e os dados a partir da coluna Y como acontece com outras linguagens. Evolução – A evolução das linguagens, fez que também o C evoluísse no sentido da Linguagens Orientadas por Objectos, dando origem a nova Linguagem C++ qual se mantém a sintaxe da Linguagem C, e permite um conjunto adicional de características (Encapsulamento, Hereditariedade, Polimorfismo, Overloading, etc.). Actualmente a nova linguagem – JAVA – apresentou-se com base alargada de trabalho para programadores. Também esta linguagem se baseia na C e C++. Foram algumas razões indicadas para aprender a programar na Linguagem C. 16
  • 17. Código Fonte O código fonte é um conjunto de palavras ou símbolos escritos de uma forma ordenada contendo instruções em uma das linguagens de programação existentes de maneira lógica (in Wikipédia). No inicio um programador compõe o programa de uma certa linguagem (C++ ou Visula Basic), o programador de sistemas tem toda a autonomia de poder alterar a forma como um programa funciona, ao adicionar recursos e a remover outros. O código fonte permite que o programador consiga expor o programa de uma forma nítida aos humanos, para que consiga definir o programa executável, é necessário que o código fonte seja traduzido para o código de máquina do processador que se ajuste á arquitectura do sistema. Na figura de cima podemos verificar um exemplo de código fonte Código de Máquina Também conhecido por linguagem do computador ou sistema binário, é a linguagem mais baixa de programação e a única que o processador e restante Hardware entendem. É unicamente constituída por 0 e 1 que representam On e Off, ou seja, se existe ou não passagem de corrente, mas que permite escrever absolutamente tudo com apenas estes dois números. Ex: Letra A corresponde a 1010 0001. 17
  • 18. Programa Fonte – é o programa original, escrito numa qualquer linguagem de programação. Programa objecto – é o programa gerado após o programa fonte ter sido compilado, por um compilador e escrito em linguagem máquina. Software de Tradução O Software de tradução é constituído por Compiladores e Interpretadores, que fazem a conversão de uma linguagem de alto nível (C, C++, Pascal, etc.) para uma linguagem de baixo nível, linguagem máquina, ou seja, tem a sua função é a de traduzir uma linguagem abstracta para uma linguagem binária. Processam dados de entrada e geram dados de saída. Compilador É um programa ou um conjunto de programas, que no momento de execução de um programa, traduz cada instrução para uma linha de código que é interpretado pelo computador, que será executada apenas após a sua completa tradução. Os compiladores analisam o código em 3 formas diferentes: - Sintáctica ou hierárquica; - Léxica ou linear; 18
  • 19. - Semântica São o tipo de tradutores mais utilizados e alguns deles possuem pré-processamento, que modifica e optimiza o código-fonte conforme as suas necessidades. Programa Compilador Compile Time Run input Códi go output Time Vantagens - O código compilado é mais rapidamente executado; - Impossibilita ou pelo menos dificulta quebrar e visualizar o código-fonte original; - Permite a optimização do código por parte do compilador; - Compila o código somente após verificar se tem algum erro. - Permite estrutura de dados mais complexas. Desvantagens - O código necessita de passar por muitos níveis de compilação até ser utilizado; - O processo de correcção ou alteração do código exige que o mesmo seja novamente compilado; - A Impossibilidade de visualizar e modificar o código-fonte. 19
  • 20. Interpretador O interpretador apesar de assumir um papel semelhante ao compilador não gera código- objecto. Ao contrário do compilador, lê, traduz e executa cada linha de código sequencialmente. Permite a utilização do programa á medida que vai sendo traduzido, cada nova execução do programa requer nova tradução e interpretação. Programa input Interpretador output Vantagens - O código não precisa ser compilado para ser executado; - Correcções e alterações mais rápidas de executar; - Consomem menos memória; Desvantagens - A execução do programa é mais lenta; - É necessário ler sempre o código original para ser executado, - Estrutura de dados demasiadamente simples. 20
  • 21. Conclusão Com a realização deste trabalho podemos concluir que a linguagem C é uma linguagem de nível médio, por oferecer elementos de linguagem de alto nível e recursos do tipo Assembler. A linguagem C acaba por ser a linguagem mais utilizada ao nível da programação de sistemas (compiladores, sistemas operacionais), pois permite-nos a manipulação de bits, bytes e endereços com que o computador funciona. Já o código fonte tem como objectivo fazer que o programador descreva o programa de forma nítida as pessoas. Para conseguirmos executar um programa é necessário traduzir o código fonte em código máquina, visto esta ser a única linguagem que os computadores compreendem. Já em relação aos compiladores e aos interpretadores tem como função operarem sobre o código fonte do programa. 21
  • 22. Fontes de consultas: Livro C/C++ de Renato Haddad Linguagem de Programação – trabalha realizado por Nuno Marques http://www.oficinadanet.com.br/artigo/1527/diferencas_entre_compiladores_e_interpret adores http://blog.uncovering.org/archives/2007/09/linguagens_de_p.html#ixzz0Y1JDv3c3 http://logbr.reflectivesurface.com/2003/03/26/evolucao-das-linguagens-de- programacao/ http://www.criarweb.com/artigos/685.php http://msdn.microsoft.com/pt-br/magazine/cc500572.aspx http://www.dcc.ufla.br/~monserrat/icc/Capitulo3.html 22

×