Introdução às Linguagens de Programação/C e C++: diferenças entre revisões

Fonte: Wikiversidade
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Ozymandias (discussão | contribs)
m +1a correção geral
Linha 1: Linha 1:
{{Navegação2|[[Introdução às Linguagens de Programação/Assembly|Assembly]]|[[Introdução às Linguagens de Programação/COBOL|COBOL]]}}
{{Navegação2|[[Introdução às Linguagens de Programação/Assembly|Assembly]]|[[Introdução às Linguagens de Programação/COBOL|COBOL]]}}


='''C'''=
='''[[w:C|C]]'''=


=='''Introdução'''==
=='''Introdução'''==
[[File:C plus plus.svg|thumb|left|200px|]]
[[File:Logo C.jpg|thumb|Logo Linguagem de programação C]]
[[Imagem:Ken_n_dennis.jpg|thumb|right|200px|Kenneth Thompson e Dennis Ritchie (da esquerda para direita), os criadores das linguagens B e C, respectivamente]]
[[Imagem:Ken_n_dennis.jpg|thumb|right|200px|Kenneth Thompson e Dennis Ritchie (da esquerda para direita), os criadores das linguagens B e C, respectivamente]]
[[File:Simples programa em C.jpg|thumb|Programa que exibe uma mensagem na tela]]
[[File:Simples programa em C.jpg|thumb|Programa que exibe uma mensagem na tela]]
A linguagem "C" foi criada entre 1969 e 1973 no AT&T Bell Labs, inicialmente desenvolvido para a implementação do sistema Unix (que originalmente foi escrito em PDP-7 Assembly, por Dennis Ritchie e Kenneth Thompson). No final da década de 70 o UNIX saiu do laboratório e passou a ser disponibilizado para as Universidades, que por sinal foi um grande sucesso na época favorecendo então a popularidade da linguagem de programação C. Vale ressaltar que este foi um dos primeiros núcleos de sistema operativo que foi implementado numa linguagem sem ser o Assembly, sendo exemplos anteriores o sistema multics (escrito em PL/I) e tripos (escrito em BCPL).
A linguagem "C" foi criada entre 1969 e 1973 no AT&T Bell Labs, inicialmente desenvolvido para a implementação do sistema Unix (que originalmente foi escrito em PDP-7 Assembly, por Dennis Ritchie e Kenneth Thompson). No final da década de 70 o UNIX saiu do laboratório e passou a ser disponibilizado para as Universidades, que por sinal foi um grande sucesso na época favorecendo então a popularidade da linguagem de programação C. Vale ressaltar que este foi um dos primeiros núcleos de sistema operativo que foi implementado numa linguagem sem ser o Assembly, sendo exemplos anteriores o sistema multics (escrito em PL/I) e tripos (escrito em BCPL).



Não se sabe ao certo o que deu origem ao nome "C", existem duas teorias a respeito:
Não se sabe ao certo o que deu origem ao nome "C", existem duas teorias a respeito:



A primeira teoria acredita que se deu o nome "C" à linguagem porque muitas das suas características derivaram de uma linguagem de programação anterior chamada "B" e "C" é a letra conseguinte no alfabeto. A segunda teoria se baseia no fato que "C" é a segunda letra do nome da linguagem BCPL, da qual se derivou a linguagem B.
A primeira teoria acredita que se deu o nome "C" à linguagem porque muitas das suas características derivaram de uma linguagem de programação anterior chamada "B" e "C" é a letra conseguinte no alfabeto. A segunda teoria se baseia no fato que "C" é a segunda letra do nome da linguagem BCPL, da qual se derivou a linguagem B.



Desde então, espalhou-se por muitos outros sistemas em plena operação, e tornou-se uma das linguagens de programação mais usadas. C tem como ponto forte, a sua eficiência, e é a linguagem de programação preferida para o desenvolvimento de sistemas e softwares de base, apesar de também ser usada para desenvolver programas de computador. É também muito usada no ensino de ciências da computação, mesmo não tendo sido projetada para estudantes e apresentando algumas dificuldades no seu uso. Outra característica importante de C é sua proximidade do código de máquina, que permite que um projetista seja capaz de fazer algumas previsões de como o software irá se comportar, ao ser executado.
Desde então, espalhou-se por muitos outros sistemas em plena operação, e tornou-se uma das linguagens de programação mais usadas. C tem como ponto forte, a sua eficiência, e é a linguagem de programação preferida para o desenvolvimento de sistemas e softwares de base, apesar de também ser usada para desenvolver programas de computador. É também muito usada no ensino de ciências da computação, mesmo não tendo sido projetada para estudantes e apresentando algumas dificuldades no seu uso. Outra característica importante de C é sua proximidade do código de máquina, que permite que um projetista seja capaz de fazer algumas previsões de como o software irá se comportar, ao ser executado.
Linha 49: Linha 44:
* Refatoração (''refactoring'') - consiste na melhoria constante do código-fonte do software, seja na construção de código mais otimizado, mais limpo e/ou com melhor entendimento pelos envolvidos no desenvolvimento do software. A refatoração, em conjunto com os testes automatizados, é uma poderosa ferramenta no processo de erradicação de "bugs", tendo em vista que os testes "garantem" o mesmo comportamento externo do software ou da característica sendo reconstruída.
* Refatoração (''refactoring'') - consiste na melhoria constante do código-fonte do software, seja na construção de código mais otimizado, mais limpo e/ou com melhor entendimento pelos envolvidos no desenvolvimento do software. A refatoração, em conjunto com os testes automatizados, é uma poderosa ferramenta no processo de erradicação de "bugs", tendo em vista que os testes "garantem" o mesmo comportamento externo do software ou da característica sendo reconstruída.


Tradução para o Inglês:

Introduction
Logo programming language C
Kenneth Thompson and Dennis Ritchie (left to right), the creators of the languages ​​B and C, respectively
Program that displays a message on the screen "C" was created between 1969 and 1973 at AT & T Bell Labs, initially developed for the implementation of the Unix system (which was originally written in PDP-7 assembly, by Dennis Ritchie and Ken Thompson). In the late 70 UNIX left the lab and is now available for universities, which by the way was a great success at the time favoring then the popularity of the programming language C. It is worth noting that this was one of the core operating system that was implemented in a language other than the Assembly, earlier instances being the Multics system (written in PL / I) and tripos (written in BCPL).


No one knows for sure what led to the name "C", there are two theories about this:


The first theory believe that if given the name "C" language because many of its features were derived from a previous programming language called "B" and "C" is therefore the letter in the alphabet. The second theory is based on the fact that "C" is the second letter of the language BCPL, which is derived from the language B.


Since then, spread to many other systems in full operation, and became one of the most widely used programming languages. C has a strong point, its efficiency, and is the preferred programming language for developing systems and software-based, although it is also used to develop computer programs. It is also widely used in teaching computer science, even if not designed for students and presenting some difficulties in its use. Another important feature of C is its proximity to the machine code, which allows a designer to be able to make some predictions on how the software will behave, when it runs.


Many programming languages ​​have been influenced by C, including C + +, which in turn was one of the inspirations for Java. The C language allows the creation of spreadsheets, operating systems, communication programs, programs for the solution of engineering problems, among others.


The most current version of "C" is the "C99" created in 1999, even though the newer version, C99 is not the version used, despite the various GCC and other compilers to bear much of the new features of C99, the compilers maintained by Microsoft and Borland C99 support very few resources, and these two companies do not seem very interested in adding such features, completely ignoring international standards. Microsoft prefers to give more emphasis to C + +.

Tradução para o Espanhol:

Introducción
Logo del lenguaje de programación C
Kenneth Thompson y Dennis Ritchie (de izquierda a derecha), los creadores de las lenguas B y C, respectivamente
Programa que muestra un mensaje en la pantalla de "C" fue creada entre 1969 y 1973 en el AT & T Bell, inicialmente desarrollado para la aplicación del sistema Unix (que fue escrito originalmente en PDP-7 de la Asamblea, por Dennis Ritchie y Ken Thompson). A finales de los 70 UNIX dejó el laboratorio y ahora está disponible para las universidades, que por cierto fue un gran éxito en el momento favorece entonces la popularidad del lenguaje de programación C Vale la pena señalar que este fue uno de los núcleo del sistema operativo que se llevó a cabo en un idioma que no sea la Asamblea, los casos anteriores es el sistema de Multics (escrito en PL / I) y el examen final (escrito en BCPL).


Nadie sabe a ciencia cierta lo que dio lugar al nombre "C", existen dos teorías sobre esto:


La primera teoría creen que si se le da el nombre de lenguaje "C" porque muchas de sus características se derivan de un lenguaje de programación anterior llamado "B" y "C" es por lo tanto, la letra en el alfabeto. La segunda teoría se basa en el hecho de que "C" es la segunda letra de la lengua BCPL, que se deriva de la lengua B.


A partir de entonces, se extendió a otros muchos sistemas en pleno funcionamiento, y fue uno de los lenguajes de programación más utilizados. C tiene un punto fuerte, su eficacia, y es el lenguaje de programación preferido para el desarrollo de sistemas y base de software, aunque también se utiliza para desarrollar los programas de ordenador. También es ampliamente utilizado en la enseñanza de ciencias de la computación, incluso si no está diseñado para los estudiantes y presentar algunas dificultades en su uso. Otra característica importante de C es su proximidad al código máquina, que permite a un diseñador para poder hacer algunas predicciones sobre cómo el software se comporta, cuando se ejecuta.


Muchos lenguajes de programación han sido influenciados por C, incluyendo C + +, que a su vez fue una de las inspiraciones para Java. El lenguaje C permite la creación de hojas de cálculo, sistemas operativos, programas de comunicación, los programas para la solución de problemas de ingeniería entre otros.


La versión más actual de "C" es el "C99", creado en 1999, aunque la versión más reciente, C99 no es la versión utilizada, a pesar de los diversos GCC y otros compiladores que soportan gran parte de las nuevas características de C99, los compiladores mantenido por Microsoft y Borland apoyo C99 muy pocos recursos, y estas dos empresas no parecen muy interesados ​​en la adición de características tales, ignorando por completo los estándares internacionales. Microsoft prefiere dar más énfasis a C + +.


=='''Instalação'''==
=='''Instalação'''==
Linha 103: Linha 55:


=='''Características do C'''==
=='''Características do C'''==
[[Imagem:C++Stopwatch.png|thumb|right|200px| Descrição 1 Um cronômetro com sobreposto o texto "C + +". Propõe-se a ser]]


Entre as principais características do C, podemos citar:
Entre as principais características do C, podemos citar:
Linha 114: Linha 65:


=='''Vantagens'''==
=='''Vantagens'''==

[[Imagem:C++ Book Cover.png |thumb|right|200px| Cubra descrição para C + + Programação Wikibook | Foto Fonte Trabalhos para a Própria / GFDL]]
* É uma linguagem simples que nos permite trabalhar com funções matemáticas, ficheiros, entre outras sendo necessário para tal a inclusão de bibliotecas padrão as quais já vêem com a linguagem;
* É uma linguagem simples que nos permite trabalhar com funções matemáticas, ficheiros, entre outras sendo necessário para tal a inclusão de bibliotecas padrão as quais já vêem com a linguagem;
Linha 128: Linha 77:
* Os programas criados em C em termos de segurança não são muito seguros uma vez que o código é escrito de uma forma seqüencial (pode-se facilmente incluir uma instrução no nosso código do programa e tornar o resultado final completamente diferente);
* Os programas criados em C em termos de segurança não são muito seguros uma vez que o código é escrito de uma forma seqüencial (pode-se facilmente incluir uma instrução no nosso código do programa e tornar o resultado final completamente diferente);
* Não possui coleta automática de lixo (se durante o programa uma variável declarada não for mais usada ao longo do programa a linguagem não tem capacidade para eliminá-la continuando esta a ocupar espaço indevidamente em memória);
* Não possui coleta automática de lixo (se durante o programa uma variável declarada não for mais usada ao longo do programa a linguagem não tem capacidade para eliminá-la continuando esta a ocupar espaço indevidamente em memória);
* Não faz uso de classes ou objetos (como no JAVA);
* Não faz uso de classes ou objetos (como no JAVA e C++);
* Multithreading (a linguagem C não permite a execução de várias tarefas em simultâneo);
* Multithreading (a linguagem C não permite a execução de várias tarefas em simultâneo);
* Networking (é uma linguagem que inicialmente não foi pensada para redes).
* Networking (é uma linguagem que inicialmente não foi pensada para redes).
Linha 135: Linha 84:
=='''Conclusão'''==
=='''Conclusão'''==


A linguagem C foi criada com o objectivo principal em mente: facilitar a criação de programas extensos com menos erros, recorrendo ao paradigma da programação algorítmica ou procedimental, mas sobrecarregando menos o autor do compilador, cujo trabalho complica-se ao ter de realizar as características complexas da linguagem.
A linguagem C foi criada com o objetivo principal em mente: facilitar a criação de programas extensos com menos erros, recorrendo ao paradigma da programação algorítmica ou procedimental, mas sobrecarregando menos o autor do compilador, cujo trabalho complica-se ao ter de realizar as características complexas da linguagem.


Apesar da lista de características úteis que C possui não ser longa, isso não tem sido um impedimento à sua aceitação, pois isso permite que novos compiladores de C sejam escritos rapidamente para novas plataformas, e também permite que o programador permaneça sempre em controle do que o programa está a fazer. Isto é o que por várias vezes permite o código de C correr de uma forma mais eficiente que muitas outras linguagens.
Apesar da lista de características úteis que C possui não ser longa, isso não tem sido um impedimento à sua aceitação, pois isso permite que novos compiladores de C sejam escritos rapidamente para novas plataformas, e também permite que o programador permaneça sempre em controle do que o programa está a fazer. Isto é o que por várias vezes permite o código de C correr de uma forma mais eficiente que muitas outras linguagens.


='''C++'''=
=[[w:C++|'''C++''']]=


=='''Introdução'''==
=='''Introdução'''==
[[Imagem:BjarneStroustrup.jpg|thumb|right|200px|Bjarne Stroustrup, criador da linguagem C++]]
[[Imagem:BjarneStroustrup.jpg|thumb|right|200px|Bjarne Stroustrup, criador da linguagem C++]]
[[File:C++.jpg|thumb|Logo sobre a linguagem de programação C++]]


No mundo da programação nós podemos classificar as linguagens de duas maneiras: Linguagem de Baixo Nível e Linguagem de Alto Nível. Quando nos referimos à linguagem de Baixo Nível estamos nos referindo a sintaxes próximas ao código de maquina, ou seja, a linguagem que o computador consegue facilmente interpretar. Em contrapartida a definição de linguagem de Baixo Nível nós encontramos as linguagem de Alto Nível, com relação a esse tipo de linguagem podemos afirmar que a mesma possui uma sintaxe próxima à linguagem humana um exemplo desse tipo de linguagem é o próprio C/C++, ente outras.
No mundo da programação nós podemos classificar as linguagens de duas maneiras: Linguagem de Baixo Nível e Linguagem de Alto Nível. Quando nos referimos à linguagem de Baixo Nível estamos nos referindo a sintaxes próximas ao código de maquina, ou seja, a linguagem que o computador consegue facilmente interpretar. Em contrapartida a definição de linguagem de Baixo Nível nós encontramos as linguagem de Alto Nível, com relação a esse tipo de linguagem podemos afirmar que a mesma possui uma sintaxe próxima à linguagem humana um exemplo desse tipo de linguagem é o próprio C/C++, ente outras.
Linha 154: Linha 102:




Um fator extremamente importante para as pessoas que estão conhecendo a linguagem de programação C++ é afirmar que é mesma é Case Sensitive, ou seja, ao programar nesse tipo linguagem as pessoas devem tomar muito cuidado ao declarar variáveis ou fazer o uso de determinados métodos, pois ao se declarar uma variável chamada conta e outra chamada cONta (note as letras maiúsculas), nesse caso o compilador entenderá que isso são variáveis distintas e provavelmente ocorrera algo completamente diferente do resultado esperado. O mesmo vale ressaltar sobre o uso da estrutura de seleção if (se) e else (senao), a declaração das mesmas devem ser sempre minúsculas, caso o programador defina as mesmas com letras maiúsculas o compilador entenderá que a declaração corresponde a uma variável.
Um fator extremamente importante para as pessoas que estão conhecendo a linguagem de programação C++ é afirmar que é mesma é ''case sensitive'', ou seja, ao programar nesse tipo linguagem as pessoas devem tomar muito cuidado ao declarar variáveis ou fazer o uso de determinados métodos, pois ao se declarar uma variável chamada conta e outra chamada cONta (note as letras maiúsculas), nesse caso o compilador entenderá que isso são variáveis distintas e provavelmente ocorrera algo completamente diferente do resultado esperado. O mesmo vale ressaltar sobre o uso da estrutura de seleção if (se) e else (senao), a declaração das mesmas devem ser sempre minúsculas, caso o programador defina as mesmas com letras maiúsculas o compilador entenderá que a declaração corresponde a uma variável.




Linha 161: Linha 109:


=='''Ambiente da linguagem'''==
=='''Ambiente da linguagem'''==

[[Imagem:STS-61-c-patch.png|thumb|right|200px| ciência. ksc. nasa. missões / Logos patch de missões STS Categoria]]


O C++ pode ser chamado de linguagem compilada, ou seja, além de escrever o código, é necessário um outro software que possa entender esse código e traduzí-lo para uma sintaxe que o computador possa interpretar denominado Código de Máquina.
O C++ pode ser chamado de linguagem compilada, ou seja, além de escrever o código, é necessário um outro software que possa entender esse código e traduzí-lo para uma sintaxe que o computador possa interpretar denominado Código de Máquina.


É necessário um editor de texto puro (como o Bloco de Notas) e um compilador para o desenvolvimento de aplicativos na linguagem C++, nesse caso quando o programador digitar o código-fonte o mesmo deve ser salvo com a extensão .CPP ao invés de .TXT, em seguida o índividuo deve abrir o prompt digitar o comando de compilação do compilador instalado (por exemplo no compilador Borland C++Builder 3.0 o respectivo comando de compilação é bcc32) seguido pelo nome do arquivo salvo.CPP, ou então o programador pode optar por utilizar um Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) para otimizar o desenvolvimento de suas aplicações.

É necessario um editor de texto puro e um compilador para o desenvolvimento de aplicativos na linguagem C++, nesse caso quando o programador digitar o código-fonte o mesmo deve ser salvo com a extensão .CPP ao invés de .TXT, em seguida o índividuo deve abrir o prompt digitar o comando de compilação do compilador instalado (por exemplo no compilador Borland C++Builder 3.0 o respectivo comando de compilação é bcc32) seguido pelo nome do arquivo salvo.CPP, ou então o programador pode optar por utilizar um Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) para otimizar o desenvolvimento de suas aplicações.




Linha 184: Linha 129:


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.
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.
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++:
Abaixo estão listados itens que caracterizam a linguagem C++:

Revisão das 11h25min de 25 de novembro de 2011



C

Introdução

Kenneth Thompson e Dennis Ritchie (da esquerda para direita), os criadores das linguagens B e C, respectivamente
Programa que exibe uma mensagem na tela

A linguagem "C" foi criada entre 1969 e 1973 no AT&T Bell Labs, inicialmente desenvolvido para a implementação do sistema Unix (que originalmente foi escrito em PDP-7 Assembly, por Dennis Ritchie e Kenneth Thompson). No final da década de 70 o UNIX saiu do laboratório e passou a ser disponibilizado para as Universidades, que por sinal foi um grande sucesso na época favorecendo então a popularidade da linguagem de programação C. Vale ressaltar que este foi um dos primeiros núcleos de sistema operativo que foi implementado numa linguagem sem ser o Assembly, sendo exemplos anteriores o sistema multics (escrito em PL/I) e tripos (escrito em BCPL).

Não se sabe ao certo o que deu origem ao nome "C", existem duas teorias a respeito:

A primeira teoria acredita que se deu o nome "C" à linguagem porque muitas das suas características derivaram de uma linguagem de programação anterior chamada "B" e "C" é a letra conseguinte no alfabeto. A segunda teoria se baseia no fato que "C" é a segunda letra do nome da linguagem BCPL, da qual se derivou a linguagem B.

Desde então, espalhou-se por muitos outros sistemas em plena operação, e tornou-se uma das linguagens de programação mais usadas. C tem como ponto forte, a sua eficiência, e é a linguagem de programação preferida para o desenvolvimento de sistemas e softwares de base, apesar de também ser usada para desenvolver programas de computador. É também muito usada no ensino de ciências da computação, mesmo não tendo sido projetada para estudantes e apresentando algumas dificuldades no seu uso. Outra característica importante de C é sua proximidade do código de máquina, que permite que um projetista seja capaz de fazer algumas previsões de como o software irá se comportar, ao ser executado.


Muitas linguagens de programação foram influenciadas por C, entre elas o C++, que por sua vez foi uma das inspirações para Java. A linguagem C possibilita a criação de planilhas eletrônicas, Sistemas Operacionais, programas de comunicação, programas para a solução de problemas de Engenharia, entre outros.


A versão mais atual de "C" é o "C99" criado em 1999, mesmo sendo a versão mais nova, C99 não é a versão mais utilizada, apesar do GCC e vários outros compiladores suportarem grande parte das novas características do C99, os compiladores mantidos pela Microsoft e pela Borland suportam pouquíssimos recursos do C99, e estas duas companhias não parecem estar muito interessadas em adicionar tais funcionalidades, ignorando por completo as normas internacionais. A Microsoft prefere dar mais ênfase ao C++.

Ambiente da linguagem

A linguagem C é o que se chama de linguagem compilada. Isso significa que, uma vez escrito o programa em C, ele deve ser passado por um compilador para transformar seu programa em Código Executável para o computador rodar (executar). Um programa em C possui um formato legível ao homem, enquanto o executável gerado no compilador possui a forma legível para a máquina e é executada por ela. Isto significa que para escrever e executar um programa em C, é necessário ter acesso a um compilador de C e um editor de texto puro, qualquer sistema operacional pode ser usado para programação em C desde que tenha o compilador necessário. Se estiver trabalhando em uma máquina Windows, você precisará fazer o download de um compilador de C gratuito ou comprar um compilador comercial. Um compilador comercial amplamente utilizado com Windows é o ambiente Visual C++ da Microsoft (ele compila programas em C e C++), que porém é um software pago.


Resumindo, para programar em C é necessário um editor de texto e um compilador, mas também pode ser acrescentado um Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) para programação na linguagem C.


IDE

Geralmente os IDEs facilitam a técnica de RAD (de Rapid Application Development, ou "Desenvolvimento Rápido de Aplicativos"), que visa a maior produtividade dos desenvolvedores.

As características e ferramentas mais comuns encontradas nos IDEs são:

  • Editor - edita o código-fonte do programa escrito na(s) linguagem(ns) suportada(s) pela IDE;
  • Compilador (compiler) - compila o código-fonte do programa, editado em uma linguagem específica e a transforma em linguagem de máquina;
  • Linker - liga (linka) os vários "pedaços" de código-fonte, compilados em linguagem de máquina, em um programa executável que pode ser executado em um computador ou outro dispositivo computacional;
  • Depurador (debugger) - auxilia no processo de encontrar e corrigir defeitos no código-fonte do programa, na tentativa de aprimorar a qualidade de software;
  • Modelagem (modeling) - criação do modelo de classes, objetos, interfaces, associações e interações dos artefatos envolvidos no software com o objetivo de solucionar as necessidades-alvo do software final;
  • Geração de código - característica mais explorada em Ferramentas CASE, a geração de código também é encontrada em IDEs, contudo com um escopo mais direcionado a templates de código comumente utilizados para solucionar problemas rotineiros. Todavia, em conjunto com ferramentas de modelagem, a geração pode gerar todo ou praticamente todo o código-fonte do programa com base no modelo proposto, tornando muito mais rápido o processo de desenvolvimento e distribuição do software;
  • Distribuição (deploy) - auxilia no processo de criação do instalador do software, ou outra forma de distribuição, seja discos ou via internet;
  • Testes Automatizados (automated tests) - realiza testes no software de forma automatizada, com base em scripts ou programas de testes previamente especificados, gerando um relatório, assim auxiliando na análise do impacto das alterações no código-fonte. Ferramentas deste tipo mais comuns no mercado são chamadas robôs de testes;
  • Refatoração (refactoring) - consiste na melhoria constante do código-fonte do software, seja na construção de código mais otimizado, mais limpo e/ou com melhor entendimento pelos envolvidos no desenvolvimento do software. A refatoração, em conjunto com os testes automatizados, é uma poderosa ferramenta no processo de erradicação de "bugs", tendo em vista que os testes "garantem" o mesmo comportamento externo do software ou da característica sendo reconstruída.


Instalação

A primeira coisa a fazer antes de desenvolver programas usando a linguagem C é instalar um compilador. Existem diversos compiladores C/C++ disponíveis para os programadores, a decisão sobre qual compilador utilizar pode ser baseada em vários fatores:

  • qualidade do compilador (rapidez, está conforme com a padronização da linguagem, a interface com o usuário é agradável, possui ou não um IDE (Integrated Development Enviroment), possui diversas opções de compilação);
  • sistema(s) operacional(is) que o compilador funciona (e gera códigos);
  • custo do compilador;
  • documentação disponível e suporte.


Características do C

Entre as principais características do C, podemos citar:

  • O C é uma linguagem de alto nível com uma sintaxe bastante estruturada e flexível tornando sua programação bastante simplificada;
  • Programas em C são compilados, gerando programas executáveis;
  • O 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. Por esta razão o C é a linguagem preferida dos programadores de aplicativos;
  • 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 funcionalidade, 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 bibliotecas.

Vantagens

  • É uma linguagem simples que nos permite trabalhar com funções matemáticas, ficheiros, entre outras sendo necessário para tal a inclusão de bibliotecas padrão as quais já vêem com a linguagem;
  • Por haver compiladores C para quase todos os computadores, é possível tomar um código escrito para uma máquina, compilá-lo e rodá-lo em outra com pouca ou nenhuma modificação. Essa "portabilidade" é uma das características do C (Um compilador lê o programa inteiro e converte-o em um código-objeto, que é uma tradução do código-fonte do programa em uma forma que o computador possa executar diretamente. Desta maneira, tudo que o programador precisa fazer para executar o programa é, normalmente, digitar apenas o seu nome);
  • Tipos de dados simples;
  • Acesso fácil ao hardware, baixos requisitos de memória;
  • Definição e declaração simples de variáveis.


Desvantagens

  • Os programas criados em C em termos de segurança não são muito seguros uma vez que o código é escrito de uma forma seqüencial (pode-se facilmente incluir uma instrução no nosso código do programa e tornar o resultado final completamente diferente);
  • Não possui coleta automática de lixo (se durante o programa uma variável declarada não for mais usada ao longo do programa a linguagem não tem capacidade para eliminá-la continuando esta a ocupar espaço indevidamente em memória);
  • Não faz uso de classes ou objetos (como no JAVA e C++);
  • Multithreading (a linguagem C não permite a execução de várias tarefas em simultâneo);
  • Networking (é uma linguagem que inicialmente não foi pensada para redes).


Conclusão

A linguagem C foi criada com o objetivo principal em mente: facilitar a criação de programas extensos com menos erros, recorrendo ao paradigma da programação algorítmica ou procedimental, mas sobrecarregando menos o autor do compilador, cujo trabalho complica-se ao ter de realizar as características complexas da linguagem.

Apesar da lista de características úteis que C possui não ser longa, isso não tem sido um impedimento à sua aceitação, pois isso permite que novos compiladores de C sejam escritos rapidamente para novas plataformas, e também permite que o programador permaneça sempre em controle do que o programa está a fazer. Isto é o que por várias vezes permite o código de C correr de uma forma mais eficiente que muitas outras linguagens.

C++

Introdução

Bjarne Stroustrup, criador da linguagem C++

No mundo da programação nós podemos classificar as linguagens de duas maneiras: Linguagem de Baixo Nível e Linguagem de Alto Nível. Quando nos referimos à linguagem de Baixo Nível estamos nos referindo a sintaxes próximas ao código de maquina, ou seja, a linguagem que o computador consegue facilmente interpretar. Em contrapartida a definição de linguagem de Baixo Nível nós encontramos as linguagem de Alto Nível, com relação a esse tipo de linguagem podemos afirmar que a mesma possui uma sintaxe próxima à linguagem humana um exemplo desse tipo de linguagem é o próprio C/C++, ente outras.


O C++ foi inicialmente desenvolvido por Bjarne Stroustrup dos Bell Labs durante a década de 1980 (originalmente com o nome C with Classes, como um adicional à linguagem C) com o objectivo de melhorar a linguagem de programação C ainda que mantendo máxima compatibilidade. Em 1983 o nome da linguagem foi alterado de C with Classes para C++, novas características foram adicionadas, como funções virtuais, sobrecarga de operadores e funções, referências, constantes, gerenciamento manual de memória, melhorias na verificação de tipo de dado e estilo de comentário de código de uma linha (//).


Stroustrup percebeu que a linguagem simula possuía características muito úteis para o desenvolvimento de software, mas era muito lenta para uso prático. Por outro lado, a linguagem BCPL era rápida, mas possuía muito baixo nível, dificultando sua utilização em desenvolvimento de aplicações. Durante seu período na Bell Labs, ele enfrentou o problema de analisar o kernel do Unix com respeito à computação distribuída. A partir de sua experiência de Doutorado, começou a acrescentar elementos do simula no C. O C foi escolhido como base de desenvolvimento da nova linguagem, pois possuía uma proposta de uso genérico, era rápido e também portável para diversas plataformas. Algumas outras linguagens que também serviram de inspiração para o cientista da computação foram Algol 68, Ada, Clu e Ml. Em 1985 foi lançada a primeira edição do livro The C++ Programming Language, contendo referências para a utilização da linguagem, já que ainda não era uma norma oficial. A primeira versão comercial foi lançada em outubro do mesmo ano. Em 1989 a segunda versão foi lançada, contendo novas características como herança múltipla, classes abstratas, métodos estáticos, métodos constantes e membros protegidos, incrementando o suporte a orientação a objeto. Em 1990 foi lançado o livro The Annotated C++ Reference Manual, que se tornou base para o futuro padrão. Outras adições na linguagem incluem Templates, tratamento de exceções, espaço de nomes, conversão segura de tipo de dado e o tipo Booleano.


Um fator extremamente importante para as pessoas que estão conhecendo a linguagem de programação C++ é afirmar que é mesma é case sensitive, ou seja, ao programar nesse tipo linguagem as pessoas devem tomar muito cuidado ao declarar variáveis ou fazer o uso de determinados métodos, pois ao se declarar uma variável chamada conta e outra chamada cONta (note as letras maiúsculas), nesse caso o compilador entenderá que isso são variáveis distintas e provavelmente ocorrera algo completamente diferente do resultado esperado. O mesmo vale ressaltar sobre o uso da estrutura de seleção if (se) e else (senao), a declaração das mesmas devem ser sempre minúsculas, caso o programador defina as mesmas com letras maiúsculas o compilador entenderá que a declaração corresponde a uma variável.


Após a padronização ISO realizada em 1998 e a posterior revisão realizada em 2003, uma nova versão da especificação da linguagem foi lançada em setembro de 2011, conhecida informalmente como C++11 ou C++0x. Este novo padrão incluirá muitas adições ao núcleo da linguagem (sua implementação principal), e estenderá a biblioteca padrão do C++, incluindo a maior parte da biblioteca do chamado C++ Technical Report 1 — um documento que propõe mudanças ao C++ — com exceção das funções matemáticas específicas.


Ambiente da linguagem

O C++ pode ser chamado de linguagem compilada, ou seja, além de escrever o código, é necessário um outro software que possa entender esse código e traduzí-lo para uma sintaxe que o computador possa interpretar denominado Código de Máquina.

É necessário um editor de texto puro (como o Bloco de Notas) e um compilador para o desenvolvimento de aplicativos na linguagem C++, nesse caso quando o programador digitar o código-fonte o mesmo deve ser salvo com a extensão .CPP ao invés de .TXT, em seguida o índividuo deve abrir o prompt digitar o comando de compilação do compilador instalado (por exemplo no compilador Borland C++Builder 3.0 o respectivo comando de compilação é bcc32) seguido pelo nome do arquivo salvo.CPP, ou então o programador pode optar por utilizar um Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) para otimizar o desenvolvimento de suas aplicações.


Instalação

A primeira coisa a fazer antes de desenvolver programas usando a linguagem C++ é instalar um compilador. Existem diversos compiladores C++ disponíveis para os programadores, a decisão sobre qual compilador utilizar pode ser baseada em vários fatores:


  • qualidade do compilador (rapidez, está conforme com a padronização da linguagem, a interface com o usuário é agradável, possui ou não um IDE (Integrated Development Enviroment), possui diversas opções de compilação);
  • sistema(s) operacional(is) que o compilador funciona (e gera códigos);
  • custo do compilador;
  • documentação disponível e suporte.


Características do C++

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.
  • C++ é desenvolvido para fornecer ao programador múltiplas escolhas, mesmo que seja possível ao programador escolher a opção errada.

Vantagens

  • Produção de código o quanto mais eficiente possível;
  • Possibilidade em programação de alto e baixo nível;
  • Alta flexibilidade, portabilidade e consistência;
  • Adequado para grandes projetos;
  • Não está sob o domínio de uma empresa (em contraste do Java — Sun ou Visual Basic — Microsoft);
  • Padronização pela ISO;
  • Grandes possibilidades para a metaprogramação e programação genérica;
  • Compatilidade com C, resultando em vasta base de códigos.


Desvantagens

  • Compatilidade com o C, herdou os problemas de entendimento de sintaxe do mesmo;
  • Os compiladores atuais nem sempre produzem o código mais otimizado, tanto em velocidade quando tamanho do código;
  • Grande período para o aprendizado;
  • A biblioteca padrão não cobre áreas importantes da programação, como threads, conexões TCP/IP, interface gráfica e manipulação de sistemas de arquivos, o que implica na necessidade de criação de bibliotecas próprias para tal, que pecam em portabilidade;
  • Devido à grande flexibilidade no desenvolvimento, é recomendado o uso de padrões de programação mais amplamente que em outras linguagens.


Críticas

" C faz com que dar um tiro no pé seja fácil; C++ torna isso mais difícil, mas quando nós o fazemos arrebentamos com a perna toda. " - Bjarne Stroustrup

A linguagem é por vezes criticada como sendo muito complicado e, portanto, difícil de dominar completamente, porque ele inclui a maior parte da linguagem de programação C como um subconjunto, C++ também herda muitas das críticas feitas ao C. Outras críticas derivam de que está faltando em C++, como a falta de "nativas" facilidades multithreading recurso presente em alguns outros idiomas, incluindo Ada, C# e Java. O atual padrão de C++11 resolve este problema, adicionando suporte para concorrência direta com a linguagem, mas no momento isto só é possível usando chamadas do sistema operacional ou bibliotecas de terceiros. C++ também é por vezes comparado desfavoravelmente com linguagens como Eiffel, Java ou Smalltalk com base que permite aos programadores "misturar e combinar" estilos de programação declarativa, funcional, genérico, modular, e processuais com programação orientada a objetos, ao invés de estritamente impor um estilo único, embora C++ é intencionalmente uma linguagem multi-paradigma. Um artigo amplamente distribuído satírico retratado Bjarne Stroustrup, entrevistados para um tema 1998 da revista IEEE Computer, confessando que C++ foi deliberadamente concebido para ser complexa e difícil, eliminando programadores amadores e elevar os salários dos poucos programadores que poderia dominar o linguagem. A seção FAQ do site pessoal Stroustrup contém uma negação e um link para a entrevista real. Outro ponto de crítica é a característica de herança múltipla, como ontologias são difíceis de manter.


Conclusão

Um dos objetivos da criação da linguagem de programação C++ foi para programação orientada à objetos pois, possibilita ao programador projetar aplicações de um ponto de vista mais parecido, com comunicação entre objetos. O programador pode programar tanto em alto nível como em baixo nível, entre outras coisa. Porém, por ser uma melhoria da linguagem de programação C, herdou os problemas de entendimento de sintaxe.

C foi escolhido pois possuía uma proposta de uso genérico, era rápido e também portável para diversas plataformas.Grandes possibilidades para a metaprogramação e programação genérica.

É uma linguagem complexa e muito complicada, e portanto, somente os programadores profissionais progamam com C++.

Referências

Esta página é somente um esboço. Ampliando-a você ajudará a melhorar a Wikiversidade.