Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Evolução da Linguagem C 2 pri_tayane@hotmail.com CENTRO UNIVERSITÁRIO UNA UNATEC CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 1º PERÍODO A EVOLUÇÃO DA LINGUAGEM C GRUPO: 1. Eduardo Henrique de Faria 2. Gabriel Sperancini 3. Helbert Marques 4. Igor Antonini Macedo 5. Leandro Teles 6. Priscilla Tayane Pinto 7. Regina Célia Silva das Dores Belo Horizonte – MG Abril/2007 3 CENTRO UNIVERSITÁRIO UNA UNATEC CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 1º PERÍODO A EVOLUÇÃO DA LINGUAGEM C Trabalho Interdisciplinar apresentado à Disciplina Projeto Tecnológico do 1º período do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas - Turma A Orientador: Profª. Cláudia Tavares GRUPO: 01. Eduardo Henrique de Faria 02. Gabriel Sperancini 03. Helbert Marques 04. Igor Antonini Macedo 05. Leandro Teles 06. Priscilla Tayane Pinto 07. Regina Célia Silva das Dores Belo Horizonte – MG Abril/2007 4 SUMÁRIO 1. DESCRIÇÃO DO PROBLEMA ...................................................................................................................... 5 2. OBJETIVOS ...................................................................................................................................................... 5 2.1 GERAL : ......................................................................................................................................................... 5 2.1.1 Específicos:........................................................................................................................................ 5 3. FUNDAMENTAÇÃO TEORICA.................................................................................................................... 6 4. METODOLOGIA ..............................................................................................................................7 4.1 INFLUÊNCIA DA LINGUAGEM C SOBRE OUTRAS ............................................................................. 8 4.1.1 Influência sobre a Linguagem JAVA ................................................................................................. 9 4.1.2 Influência sobre a Linguagem PHP................................................................................................. 10 4.1.3 Comparação entre as três linguagens:............................................................................................ 12 5. CONCLUSÃO ................................................................................................................................................. 13 6. BIBLIOGRAFIA ............................................................................................................................................. 13 5 1. DESCRIÇÃO DO PROBLEMA Atualmente, a linguagem C vem sendo usada para desenvolver novas linguagens, entre elas a linguagem C++ e Java. O C é uma linguagem estruturalmente simples e de grande portabilidade. O compilador C gera códigos mais enxutos e velozes do que muitas outras linguagens. Embora estruturalmente simples (poucas funções intrínsecas), o C não perde funcionalidades, pois permite a inclusão de uma farta quantidade de rotinas do usuário. Os fabricantes de compiladores fornecem uma ampla variedade de rotinas pré-compiladas em biblioteca. O C compartilha recursos tanto de alto quanto de baixo nível, pois permite acesso e programação direta do microprocessador. Com isto, rotins cuja dependência do tempo é critica, podem ser facilmente implementadas usando instruções em Assembly. Por esta razão, o C é a linguagem preferida dos programadores de aplicativos. Por esse motivo, o grupo tem como problema de pesquisa: Como surgiu e quais as inovações da linguagem de programação C, como evoluiu e qual seu legado para os nossos dias? 2. OBJETIVOS 2.1 Geral: Analisar a evolução da linguagem C, desde o objetivo da sua criação e utilização da mesma em vários aplicativos, encontrando sua influência sobre linguagens e aplicações modernas. 2.1.1 Específicos: • Explicar a necessidade da criação da linguagem C, identificando suas inovações, fazendo um comparativo das vantagens e desvantagens anunciadas pelo usuário ao longo de sua evolução. 6 • Mostrar a aplicabilidade da linguagem C nas novas linguagens de programação e o motivo de sua ampla aceitação, tanto na área tecnológica quanto na área acadêmica. 3. FUNDAMENTAÇÃO TEORICA A programação surgiu com o intuito de ser o meio de comunicação entre o programador e a máquina, conforme explica o site Wikipédia.(2007. p. XX ) : Uma linguagem de programação é um método padronizado para expressar instruções para 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. Uma das principais funções das linguagens de programação é permitir que programadores tenham uma maior agilidade e facilidade na hora de transmitir suas instruções aos computadores. Com a evolução da tecnologia, a popularização dos computadores e o advento de novas necessidades, tivemos também a multiplicação das linguagens de programação onde cada nova linguagem tentou exercer seu papel de facilitadora de comunicação, dentro da função para a qual tinha sido concebida. E é diante desse panorama que voltaremos nossos olhos para uma linguagem especifica, a linguagem de programação C. Segundo o site da PUC-RS (2007), a primeira versão de C foi criada por Dennis Ritchie em 1972 nos laboratórios Bell para ser incluído como um dos softwares a serem distribuídos juntamente com o sistema operacional Unix do computador PDP-11, na equipe certificada por Ken Thompson. Do ponto de vista técnico, o surgimento do C iniciou com a linguagem ALGOL , definida em 1960. ALGOL era uma linguagem de alto nível, que permitia ao programador trabalhar "longe da máquina", sem se preocupar com os aspectos de como cada comando ou dado era armazenado ou processado. Foi criado para substituir o FORTRAN. ALGOL não 7 teve sucesso, talvez por tentar ser de muito alto nível em uma época em que a maioria dos sistemas operacionais exigiam do usuário um grande conhecimento de hardware. Em 1967 surgiu CPL (Combined Programming Language) nas universidades de Londres e Cambridge com o objetivo, segundo a equipe do projeto, de "trazer ALGOL à terra", ou "manter contato com a realidade de um computador real". Da mesma forma de ALGOL, CPL não foi bem aceita, em especial pelos projetistas de sistemas operacionais que a consideravam difícil de implementar (SOBRENOME DA FONTE, ANO). Ainda em 1967, em Cambridge, Martin Richards criou o BCPL (Basic CPL), uma simplificação do CPL, tentando manter apenas as "boas coisas do CPL". Em 1970, Ken Thompson, chefe da equipe que projetou o UNIX para o PDP11 do Bell Labs, implementou um compilador para uma versão mais reduzida do CPL. Batizou a linguagem de B (SOBRENOME DA FONTE, ANO). Tanto BCPL quanto B mostravam-se muito limitadas, prestando-se apenas para certas classes de problemas. Isto se fez sentir especialmente na primeira versão do PDP11, lançado no mercado em 1971. Um dos fatores que levou à isto foi a intenção do grupo responsável pelo UNIX de reescrevê-lo todo em uma linguagem de alto nível, e para isto B era considerado lenta. Estes problemas levaram a que o projetista Dennis Ritchie, do Bell Labs, fosse encarregado de projetar uma nova linguagem, sucessora do B, que viria então, a ser chamada de C (SOBRENOME DA FONTE, ANO).. Mas o que fez com que essa linguagem criada nos anos 70 se tornasse uma linguagem tão popular e fosse capaz de influenciar linguagens posteriores a ela? Dentre outras respostas para essa pergunta está, segundo o site da Arnaut-oficina de programação (2007) o fato de que, o C é uma linguagem de alto nível com uma sintaxe bastante estruturada e flexível tornando sua programação bastante simplificada, seus programas são compilados, gerando programas executáveis, a linguagem C compartilha recursos tanto de alto quanto de baixo nível, pois permite acesso e programação direta do microprocessador. Com isto, rotinas cuja dependência do tempo é crítica, podem ser facilmente implementadas usando instruções em Assembly. Além de ser uma linguagem estruturalmente simples e de grande portabilidade, o compilador C gera códigos mais enxutos e velozes do que muitas outras linguagens (SOBRENOME DA FONTE, ANO). Outra importante característica desta linguagem e o fato de se tratar de uma linguagem “livre” (open-source), onde seu desenvolvimento pode ser utilizado em vários sistemas 8 operacionais e compiladores completamente gratuitos, que a torna uma linguagem sempre atualizada e em desenvolvimento. Nesse sentido, Não há um “dono” desta linguagem. Há vários sistemas operacionais e compiladores 100% gratuitos que usam o padrão C/C++ (o exemplo mais visível é o Linux). Isso significa na prática que essa linguagem tem inúmeros patrocinadores, famosos e anônimos. Isso mantém o suporte sempre muito atualizado e amplamente disponível na Internet. (VILLAS-BOAS, ANO p. 31). Finalizando, além de todos estes avanços e evoluções, também encontramos uma nova tecnologia para a linguagem a partir da década de 90, que incorpora a orientação a objetos, um dos maiores avanços para desenvolvimento: Orientação a Objetos é o maior avanço em software destes últimos anos. É uma forma mais natural de se analisar o mundo. Ela nos permite construir sistemas melhores e, além disso, de maneira mais fácil. Será a mais importante das tecnologias emergentes na área de software nos anos 90. (BERNARDI, ANO. P. XX). 4. METODOLOGIA Para definirmos as técnicas usadas para embasamento do nosso projeto, fizemos uma avaliação da influência do C/C++ sobre as outras linguagens, no nosso caso, especificamente, as linguagens JAVA e PHP, assim como um quadro comparativo: 4.1 INFLUÊNCIA DA LINGUAGEM C SOBRE OUTRAS Dentre as inúmeras características e importâncias da linguagem C/C++, se destaca a influência desta linguagem para desenvolvimento de outras como o, Java, PHP dentre outras, que não deixa de ser também uma “evolução” da linguagem. Escolhemos, dentre outras, essas 2 linguagens a fim de demonstrar em quais aspectos e como se deu essa influência da linguagem C. Antes de tudo vamos conhecer alguns aspectos estruturais da linguagem C/C++: Exemplo da linguagem C++ (trecho do código): 9 #include<ioestream.h> void main() { Int nota; cout<<"Trabalho de Fundamentos da Programação\nDigite a nota do trabalho "; cin>>nota; if((nota<=10)&&(nota>=0)) { Cout<<”Nota Armazenada!!!”; } Else { Cout<<”Nota Invalida”; } } /*Obs: Os pontos destacados são os as principais semelhanças com as outras linguagens que será exemplificada*/ Tabela 1. Trecho da linguagem C++. Fonte: Apostila de Introdução a Linguagem C 4.1.1. Influência sobre a Linguagem JAVA A linguagem de programação Java basicamente constitui-se em um programa (interpretador) para execução da linguagem. O interpretador é chamado de máquina virtual ou virtual machine. Os programas em Java podem ser executados em qualquer sistema operacional, desde que o interpretador esteja instalado. Uma característica importante da linguagem é ser multiplataforma, justamente por causa deste interpretador e, com uma sintaxe até certo ponto parecida com o C++, porém com 10 bibliotecas diferentes. Quando um programa é compilado e gerado um código intermediário chamado de bytecode. Este bytecode é interpretado pelas máquinas virtuais Java (JVMs) para a maioria dos sistemas operacionais. A máquina virtual é a responsável por criar um ambiente multiplataforma, ou seja, se alguém construir um sistema operacional novo, basta criar uma máquina virtual Java que traduza os bytecodes para código nativo e todas as aplicações Java estarão rodando sem problemas. Como já foi dito a linguagem Java e muito versátil, podendo ser utilizada para construir vários tipos de aplicativos, para diferentes meios e finalidades. (Ex: web, desktop, servidores, mainframes, jogos, aplicações móveis, chips de identificação, etc.). Pequeno exemplo com a estrutura básica da linguagem onde já se apresenta muitas características e semelhanças com a linguagem C/C++. Public class Trabalho_Fundamentos_da_programacao { Public static void main (Sting args[]) { System.out.printIn(“Linguagem Java”); } } /*obs: apresenta as mesmas estruturas do C++ (void main, uso de {colchetes} e ponto e vírgula;)*/ Tabela 2 . Trecho da linguagem JAVA Fonte: Desvendando o Java – Manual pratico para programadores 4.1.2. Influência sobre a Linguagem PHP PHP é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na Web. Apesar de ser uma linguagem de fácil aprendizado e de uso para pequenos scripts dinâmicos simples, o PHP é uma linguagem poderosa orientada a objetos. 11 A linguagem surgiu por volta de 1994, como um subconjunto de scripts Perl criados por Rasmus Lerdof, com o nome PHP/FI (Personal Home Page Tools/Forms Interpreter). Trata-se de uma linguagem extremamente modularizada, o que a torna ideal para instalação e uso em servidores web. Diversos módulos são criados no repositório de extensões PECL (PHP Extension Community Library) e alguns destes módulos são introduzidos como padrão em novas versões da linguagem. A linguagem PHP é muito parecida, em tipos de dados, sintaxe e mesmo funções, com a linguagem C e com a C++. Pode ser, dependendo da configuração do servidor, embutida no código HTML. A linguagem PHP e utilizada para desenvolvimento web embora apresente variantes como o PHP-GTK. A linguagem é utilizada especificamente em construção de páginas dinâmicas e baseadas em banco de dados. O PHP é uma linguagem interpretada diretamente pelo servidor onde esta armazenado os arquivos em php. Desta forma o código e interpretado e passado para o usuário como um simples código html. Neste exemplo as características da linguagem C/C++ também estão presentes. <?php Require_once("code.php"); Require("code.php"); include("code.php"); echo "Linguagem PHP"; $x = 2; # Variáveis if($x == "2") { 12 echo "Trabalho de fundamentos de Programaçao – linguagem PHP"; } Else { print("Adeus mundo!"); } ?> /*obs: apresenta estrutura muito semelhante ao c++. Include – if else – colchetes e pnto e virgula no final de cada comando.*/ Tabela 3. Trecho da linguagem PHP Fonte: PHP.net 4.1.3. Comparação entre as três linguagens: Com os exemplos de cada linguagem conseguimos ver a ampla semelhança nas linguagens C/C++ com Java e PHP. São linguagens de certa forma com aplicações “diferentes” mas que apresenta a mesma sintaxe e estrutura. Podemos perceber que essas linguagens tem em comum o uso dos seguintes itens: Linguagem: C/C++ Java PHP Include X X Colchetes X X X If – Else X X X Ponto e vírgula (;) X X X Orientado a objetos: X X X Desenvolvida no ano: 1970 1991-1995 1994 13 Compilada e/ou Interpretada: Compilada Comp. & Inter. Interpretada Tabela 4. Quadro comparativo das linguagens 5. CONCLUSÃO Com esse trabalho, pudemos perceber a importância da linguagem de programação C para a história do desenvolvimento de Software, as circunstâncias em que se deu sua criação e alguns aspectos de sintaxe dessa linguagem. Concluímos que a linguagem não só contribuiu para resolver os problemas da época em que foi concebida mas serve de referência até os dias de hoje, deixando um legado vastíssimo para linguagens posteriores a ela. Entendemos que a despeito de ser uma linguagem relativamente “antiga”, a linguagem ainda tem uma grande aceitação nos meios acadêmicos e profissionais, estando longe de ser uma linguagem morta e obsoleta. 6. REFERÊNCIAS SCHILDT, Herbert. Turbo C: Guia do Usuário, São Paulo, McGraw-Hill, 1988 SCHILDT, Herbert C Completo e Total. 3º. Ed. Pearson, 1997. GLACI :Apostila de Introdução a Linguagem C- Centro de Computação – UNICAMP. CUSTODIO, Eduardo. Apostila Linguagem de Programação II – C NETO, Oziel Moreira. Desvendando o Java – Manual pratico para programadores. Editora Digerati Books. 2004. STROUSTRUP, Bjarne Programação - Linguagem C VILLAS-BOAS, Sergio Barbosa– C/C++ e orientação a objetos em ambiente multiplataforma - 14 BERNARDI, André– Apostila Curso e Extensão – Microsoft Visual C++ - PcBrasil – Especial nº. 01 (CD Interativo) Editora Digerati Arnaut oficina de programação: <http://www.arnaut.eti.br/op/CPPAI03.htm> Acesso em 17 Abr. 2007. Guia do Hardware: <http://www.guiadohardware.net> Acesso em 17 Abr. 2007. Java Free: < http://www.javafree.org> Acesso em 15 Abr. 2007. PHP.net: <http://www.php.net> Acesso em 17 Abr. 2007. Wikipedia: <http://pt.wikipedia.org> Acesso em 16 Abr. 2007.