Enioscripter 0 Postado Março 9, 2008 Share Postado Março 9, 2008 Pessoal Estou Postando o Conteúdo Completo Um Conteúdo Complexo De c++ Então Não quero perde tempo Vamos Começar. -------------------------------------------------------------- História ------------------------------------------------------------------------ C++ é uma evolução de C, que evoluiu de duas linguagens de programação anteriores, BCPL e B. BCPL foi desenvolvida em 1967 por Martin Richards, como uma linguagem para escrever software de sistemas operacionais e compiladores. Ken Thompson modelou muitas características de sua linguagem B inspirando-se em suas correspondentes em BCPL e usou B para criar as primeiras versões do sistema operacional UNIX no Bell Laboratories, em 1970, em um computador DEC PDP-7. Tanto BCPL como B eram linguagens typeless, ou seja, sem definição de tipos de dados – todo item de dados ocupava uma “palavra” na memória e o trabalho de tratar um item de dados como um número inteiro ou um número real, por exemplo, era de responsabilidade do programador. A linguagem C foi desenvolvida de B por Dennis Ritchie no Bell Laboratories e foi originalmente implementada em um computador DEC PDP-11 em 1972. C usa muitos conceitos importantes de B e BCPL, ao mesmo tempo em que acrescenta tipos de dados e outras características. Essa linguagem foi desenvolvida com o principal objetivo de ser eficiente. C++, um extensão de C, foi desenvolvida por Bjarne Stroustrup no início dos anos 80 no Bell Laboratories. As primeiras versões de C++ foram baseadas principalmente na linguagem Simula. Devido à tecnologia orientada a objetos ser nova na altura e todas as implementações existentes de linguagens orientadas a objetos serem muito lentas e ineficientes, o primeiro objetivo do C++ era a de manter a eficiência do C. Melhorias na tecnologia de software começaram a aparecer com os benefícios de assim chamada programação estruturada (e as disciplinas relacionadas de análise e projeto de sistemas estruturados), sendo comprovados na década de 70. Mas foi somente quando a tecnologia de programação orientada a objeto se tornou largamente utilizada na década de 80, e muito mais amplamente utilizada na década de 90, que os desenvolvedores de software finalmente sentiram que eles tinham as ferramentas de que precisavam para obter importantes progressos no processo de desenvolvimento de software. Na verdade, a tecnologia de objetos existe desde de pelo menos meados da década de 60. a linguagem de programação C++ desenvolvida na AT&T por Bjarne Stroustrup no início da década de 80 é baseada em duas linguagens – C, que foi inicialmente desenvolvida na AT&T para implementar o sistema operacional UNIX no início da década de 70, e Simula 67, uma linguagem de programação para simulação desenvolvida na Europa e liberada em 1967. C++ absorveu os recursos de C e adicionou os recursos de Simula para criação e manipulação de objetos. Nem C nem C++ foram projetadas para ampla utilização fora dos laboratórios de desenvolvimento da AT&T. Mas rapidamente surgiu o apoio popular para cada uma delas. Stroustrup também adicionou novas funcionalidades que eliminaram muitas das dificuldades que C apresentava aos programadores iniciantes. No inicio, a linguagem foi chamada "C com Classes", mas em 1983 depois de vários melhoramentos a linguagem foi renomeada para C++. A primeira versão comercial de C++ chegou ao mercado em 1985, junto com o livro de Stroustrup “A linguagem de programação C++”. ----------------------------------------------------------- Introdução* -------------------------------------------------------------------- C++ apresenta várias características que melhoram a linguagem C, mas o mais importante é que inclui novos conceitos não suportados pelo C, como o paradigma de programação orientado a objetos e todos os conceitos associados a ele, o que torna os programas mais fáceis de entender, corrigir e modificar. Existe uma revolução em andamento na comunidade de software. Construir software rápida ,correta e economicamente é um objetivo difícil de se atingir, e isto em uma época em que a demanda por softwares novos e mais poderosos está aumentando rapidamente. ---------------------------- Paradigmas utilizados em C++: Estruturado X Orientado a Objetos --------------------------------- Objetos são, essencialmente, componentes de software reutilizáveis que modelam coisas do mundo real. Os desenvolvedores de software estão descobrindo que usar uma abordagem de implementação e projetos modulares, orientados a objetos, pode tornar o grupo de desenvolvimento de software muito mais produtivo do que é possível usando-se técnicas de programação anteriormente populares, como a programação estruturada. Os programas orientados a objetos são mais fáceis de entender, corrigir e modificar. Antes de surgirem as linguagens orientadas a objetos, as linguagens de programação (tais como FORTRAN, Pascal, Basic e C) eram focadas em ações (verbos) em vez de coisas ou objetos (substantivos). Programadores que vivem em um mundo de objetos tinham acesso ao computador e tinham de programar basicamente usando verbos. Esta mudança de paradigma tornou um pouco estranho escrever programas. Agora, com a disponibilidade de linguagens populares orientadas a objetos, tais como Java, C++ e muitas outras, os programadores continuam vivendo em um mundo orientado a objetos e, quando chegam ao computador, podem programar de uma maneira orientada a objetos. Isto significa que programam de uma maneira similar à maneira em que têm percepção do mundo. Este é um processo mais natural do que a programação procedural e resultou em melhorias significativas de produtividade. Muitas outras linguagens orientadas a objetos foram desenvolvidas, incluindo Smalltalk, desenvolvida no Palo Alto Research Center da Xerox (PARC). Smalltalk é uma linguagem orientada a objetos pura – literalmente, tudo nela é um objeto. C++ é uma linguagem híbrida – é possível programar em C++ tanto em um estilo semelhante ao de C, ou seja, através de programação estruturada, como em um estilo orientado a objetos, ou ambos. -------------------------------------------------------- Características --------------------------------------------------------------------- C++ pode ser visto como uma linguagem procedimental tradicional com alguns construtores adicionais. Começando pelo C, alguns construtores para programação orientada a objetos e para melhorar a sintaxe procedimental foram acrescentados. Um programa bem escrito em C++ irá refletir elementos tanto do estilo de programação orientada a objetos como programação procedimental clássica. Isto porque o C++ é na verdade uma linguagem extensível já que podemos definir novos tipos de tal maneira que eles agem de mesmo modo que os tipos pré-definidos que fazem parte da linguagem padrão. Abaixo estão listados itens que caracterizam a linguagem C++: • Programação Orientada à Objetos: A possibilidade de utilizar programação orientada a objetos permite ao programador projetar aplicações de um ponto de vista mais parecido com comunicação entre objetos que de uma seqüência estruturada de código Alem disso, permite a reusabilidade de código de uma forma mais lógica e produtiva. A linguagem foi desenvolvida com o cuidado de prover atributos Orientados à Objeto para a linguagem C sem comprometer a eficiência. • Portabilidade: Pode-se praticamente compilar o mesmo código C++ em qualquer tipo de computador e sistema operacional sem fazer grandes mudanças . C++ é uma das mais usadas e portadas linguagens de programação. • Brevidade: Código escrito em C++ é muito menor em comparação com outras linguagens, desde o uso de caracteres especiais e preferidos antes de palavras chave, evitando esforço. • Programação Modular: Um corpo de aplicação em C++ pode ser feita de vários arquivos de código que serão compilados separadamente e “linkados” juntos. Economizando tempo, pois não é necessário recompilar toda a aplicação quando se faz uma mudança simples, mas apenas aquele arquivo que a contem. Alem do mais, esta característica permite C++ ligar com código produzido em outras linguagens como o Assembler ou C. • Compatibilidade com C: Qualquer código escrito em C pode ser facilmente incluído em um programa C++ sem fazer grandes mudanças. • Velocidade: O código resultante de uma compilação C++ é muito eficiente, devido a sua dualidade de linguagem de Alto e Baixo nível e do tamanho reduzido da linguagem em si. • Não há um "dono" da linguagem. Há vários compiladores e sistemas operacionais que utilizam o padrão C/C++ ANSI. Isto significa na prática que esta linguagem tem inúmeros patrocinadores, famosos e anônimos. Isto mantém o suporte sempre muito atualizado e disponível pela internet. • Principio Importante: “Caso o código não utilize uma certa funcionalidade, a performance deve ser a mesma como se a linguagem não tivesse esta funcionalidade”. ---------------------------------------------------- Vantagens Em Utilizar C++ ---------------------------------------------------------- • Independência de plataforma: C/C++ são linguagens independentes de plataformas, no entanto pode ser que seja necessário fazer pequenas alterações. • Extensão de C: Uma razão que aumentou a utilização de C++ tão rapidamente é que essa linguagem extende a programação em C oferecendo a capacidade de fazer orientação a objetos , possibilitado pela inclusão do padrão ANSI/ISSO. • Facilidade na migração de C para C++: Uma quantidade enorme de código C foi escrita na indústria nas várias últimas décadas. Uma vez que C++ é superconjunto de C, muitas organizações acham que ele é um próximo passo ideal. Os programadores podem pegar seu código C, compila-lo em um compilador C++, freqüentemente com alterações nominais, e continuar escrevendo código semelhante a C enquanto domina o paradigma de objetos. O fato de o C++ oferecer todas as possibilidades do C e mais, torna a transição do C para o C++ relativamente fácil. Programadores familiarizados com o C podem começar a programar em C++ utilizando ficheiros de código com a extensão .cc ou .cpp em vez de .c, e depois podem confortavelmente deslizar em todas as possibilidades que o C++ oferece. Nenhuma mudança de hábitos radical é necessária. Então os programadores podem gradualmente migrar partes do código C legado para C++ conforme o tempo permitir. Novos sistemas podem ser inteiramente escritos em C++ orientado a objetos. Tais estratégias têm atraído muitas organizações. • C++ é uma linguagem de propósito geral. Podem-se fazer facilmente programas simples ou complexos. C++ suporta integração com varias outras tecnologias, podendo ser utilizada para praticamente qualquer finalidade, como WEB, micro-controladores, descrição de hardware, comunicação e aplicativos distribuídos para ambiente cliente/servidor. • Implementação de Sistemas Operacionais: C se tornou inicialmente conhecida como conhecida como linguagem de desenvolvimento do sistema UNIX. Hoje em dia, a maioria dos sistemas operacionais é escrita em C e/ou C++ e tornaram as linguagens de programação preferidas para escrever software para sistemas operacionais. ------------------------------------------------------ Desvantagens em utilizar C++ ----------------------------------------------------- • Linguagens como C e C++, permitem geralmente ao programador escrever programas que executam só uma atividade de cada vez, diferente de linguagens como Ada que permitem multitasking (várias tarefas sendo executadas em paralelo). • Embora seja possível escrever programas portáveis, existem muitos problemas entre compiladores de C e C++diferentes e computadores diferentes, que podem tornar a portabilidade difícil de ser obtida. Simplesmente escrever programas em C e C++ não garante portabilidade. O programador precisará, com freqüência, lidar diretamente com variações de compilador e computador. ----------------------------------------------------- IMPLEMENTAÇÃO --------------------------------------------------------------------- Bjarne Stroustrup implementou sozinho a primeira versão. Hoje existem varias implementações de várias diferentes empresas. A facilidade de se fazer um compilador para C++ resultou neste grande número de compiladores. Isso também acarretou em diferentes versões da linguagem. Até pouco tempo atrás, um programador C++ tinha que escrever código baseado no compilador que iria utilizar, devido a várias pequenas diferenças entre os compiladores. Alguns compiladores disponíveis no mercado hoje: • Livres: GNU Compiler e baseados. • Comerciais: Visual C++, Borland C++, CodeWarrior... 2.4.1 Biblioteca Os programas em C++ consistem em peças chamadas classes e funções. Pode-se programar cada peça que possa precisar para criar programas em C++. Mas a maioria dos programadores de C++ aproveitam as ricas coleções de classes e funções existentes na biblioteca de C++. O livro de Pauger é leitura obrigatória para programadores que precisam de uma compreensão profunda das funções da biblioteca de ANSI C que estão incluídas em C++, como implementá-las e como utilizá-las para escrever código portável. As bibliotecas padrão de classes são geralmente fornecidas pelos fornecedores de compiladores. Muitas bibliotecas de classes para finalidades especiais são oferecidas por fornecedores independentes de software. 2.4.2 Fundamentos de um ambiente típico de C++ Os sistemas de C++ consistem geralmente de várias partes: um ambiente de desenvolvimento de programas, a linguagem e a biblioteca padrão de C++. A discussão a seguir explica um ambiente de programação em C++ típico, mostrado na figura abaixo. Falta a Figura do livro Os programas em C++ passam tipicamente por seis passos , até que possam ser executados (Ver figura acima). São os seguintes: editar, pré-processar, compilar,”ligar”, link, carregar e executar. A primeira fase consiste em editar um arquivo utilizando um programa editor, por exemplo o vi do UNIX. Este deve ser salvo em um dispositivo de armazenamento secundário, como um disco. As extensões mais freqüentes de um arquivo C++ são: .cpp, cxx, .C e .cc. Em seguida, o programador dá o comando para compilar o programa. O compilador traduz o programa em C++ para o código em linguagem de máquina (também chamado de código objeto). O pré-processador do C++ obedece a comandos especiais chamados de diretivas para o pré-processador, que indicam que certas manipulações devem ser feitas sobre o programa antes da compilação. Estas manipulações normalmente consistem em incluir outros arquivos de texto no arquivo a ser compilado e executam substituições de texto variadas. O pré-processador é invocado pelo compilador antes de o programa ser convertido para linguagem de máquina. A próxima fase é a ligação. Os programas em C++ contêm tipicamente referências a funções definidas em outro lugar, como nas bibliotecas padrão ou nas bibliotecas privadas de grupos de programadores que trabalham juntos em um projeto particular. O código objeto produzido pelo compilador C++ contém tipicamente “buracos” devido a estas partes que estão faltando. Um editor de ligação (linker) liga o código objeto com o código das funções que estão faltando, para produzir uma imagem executável (sem pedaços faltando). A próxima fase é chamada de carga (loading). Antes de um programa poder ser executado, o programa deve primeiro ser colocado na memória. Isto é feito pelo loader* (carregador), que pega a imagem executável do disco e transfere a mesma para a memória. Componentes adicionais de bibliotecas compartilhadas que suportam o programa do usuário também são carregados. Finalmente, o computador, sob controle de sua CPU, executa o programa, uma instrução por vez. Para carregar e executar o programa em um sistema UNIX, deve-se digitar o nome do executável gerado na compilação pelo comando gcc -o “nome do executável” “nome do arquivo em C++”. -- Então e isso pessoal e so o básico que eu tenho sobre c++ =) Espero ter ajudado. Link para o comentário Compartilhar em outros sites More sharing options...
Sprit 0 Postado Março 29, 2008 Share Postado Março 29, 2008 bem legal o texto.. mostra um pouco do C =D Link para o comentário Compartilhar em outros sites More sharing options...
manirao 0 Postado Novembro 5, 2008 Share Postado Novembro 5, 2008 Gostei Cara Vlw Link para o comentário Compartilhar em outros sites More sharing options...
Eventide 23 Postado Novembro 25, 2008 Share Postado Novembro 25, 2008 @/\ flooders... @tópico me diga, quem vai querer saber a história do c++ ? as pessoas querem saber como programar, e não esse bla bla bla... curto e grosso... Link para o comentário Compartilhar em outros sites More sharing options...
tesla 2 Postado Novembro 27, 2008 Share Postado Novembro 27, 2008 (editado) @/\flooders... @tópico me diga, quem vai querer saber a história do c++ ? as pessoas querem saber como programar, e não esse bla bla bla... curto e grosso... Idem, disse tudo o que eu queria dizes, fazer um breve resumo tudo bem mas dai jah contar da história do C++, pra isso que existe a Wikipédia :positive: Mas mesmo assim parabéns pela iniciativa... Editado Novembro 27, 2008 por tesla Link para o comentário Compartilhar em outros sites More sharing options...
Dedim 0 Postado Dezembro 19, 2008 Share Postado Dezembro 19, 2008 -- Então e isso pessoal e so o básico que eu tenho sobre c++ =) você nao colocou no titulo conteudo completo??? Link para o comentário Compartilhar em outros sites More sharing options...
brunin86 15 Postado Setembro 18, 2010 Share Postado Setembro 18, 2010 me diga, quem vai querer saber a história do c++ ? as pessoas querem saber como programar, e não esse bla bla bla... curto e grosso... Também acho @topic Vou dar uma dica: Coloque um pouco mais de cor nos seus tutoriais e/ou textos pra deixar um tom mais alegre, e separar coisas de coisas. Link para o comentário Compartilhar em outros sites More sharing options...
MarcelloMendes 78 Postado Setembro 21, 2010 Share Postado Setembro 21, 2010 bom, ta ai a historia do c++, realmente as pessoas preferem saber como programar né rs ;x mas conhecimento nunca e d+, porque nao podemos saber a historia do C++? so acho que não precisava ser "curto e grosso" como vcs tão dizendo, por mais que nao seja um tutorial ou algum conteúdo explicando como programar a linguagem, a intenção do cara foi ajudar =] vlw ai manim! obs: como vc e 'programmer', se puder fazer um tutorial para iniciantes em C/C++ ficaria grato! Link para o comentário Compartilhar em outros sites More sharing options...
LordZezim 48 Postado Dezembro 1, 2011 Share Postado Dezembro 1, 2011 Legal Coisas novas que descobri agora xD bem interessante. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados