Ir ao conteúdo

C & C++


speednoz

Posts recomendados

Postado

bem, sou um aprendiz muito iniciante de C. estou começando a aprender. Num topico q eu criei aqui no forum eu perguntei um compilador pra C. alguem me indicou o Dev-C++.:confused:mas pera ai? C e C++ usam a mesma linguagem de programação?:unsure:

eu sei q o C++ é orientado a objetos, o problema é que eu nem sei o q é isso.:blink:

aproveitando o topico: ouvi falar de C#. é igual a C e C++ ?:tantan:

Postado

Salve, speednoz!

Sim! A maioria dos compiladores C++ compila pra C, tb!

E sim, C++ é evolução do C. Utiliza toda a base da linguagem C, mais a evolução da linguagem para orientação à objetos.

Um objeto é um componente de programação que tem "encapsulado" dados e funções, quer dizer, dentro do seu objeto, existem os dados que esse objeto manipula e as funções (métodos) necessárias para se manipular esses dados. E esses dados/métodos, são exclusivos desse objeto!

C++ como evolução de C, permite todas as características de uma linguagem orientada à objetos (conceito de classes, polimorfismo, herança, encapsulamento, etc).

Programar orientado à objetos, é mudar totalmente a forma como se programa para linguagens comuns, ditas estruturadas.

C# tb! Como evolução de C++, é uma linguagem orientada à programação para internet.

Quem programa em C, teoricamente, está preparado para programar em C++ e C#. Mas, os conceitos entre elas são bastante diferentes, apesar de ser a mesma linguagem!

Boa sorte.

[]'s

  • Membro VIP
Postado
C# tb! Como evolução de C++, é uma linguagem orientada à programação para internet.

Não e não,

- C# é orientado a objetos MUITO parecida com Java, é até concorrente do Java, mas NÃO é uma evolução do C++, quando muito foi baseada, influenciada, etc, simplesmente, tem outro foco.

- Não foi feita para "programação para internet", é propósito geral, da para fazer executáveis, dlls e até sites com o Asp.Net, enfim, quase tudo.

Quem programa em C, teoricamente, está preparado para programar em C++ e C#. Mas, os conceitos entre elas são bastante diferentes, apesar de ser a mesma linguagem!

Não é a mesma linguagem, C e C++ são até bem parecidas, a maior parte do que funciona no C (mas não tudo) vai funcionar no C++, ja a recíproca não é verdadeira, ja entre C e C#, alguns trechos de código funcionam se tirados de uma e postos na outra, mas é mais exceção do que regra.

Postado

Eduardo.

Eu errei quando disse que eram a mesma linguagem. Não são a mesma linguagem, óbvio! Se fossem a mesma linguagem não precisariam nem existir! Bastava somente o C. Na realidade, deveria ter dito que a BASE de todas é que é o C.

[]'s

Postado

A evolução de C++ é D, :D

Sim, existe essa linguagem. Salvo o engano, ela é de 1999.

--

C é uma linguagem feita pelo Brian Kernighan e Dennis Ritchie, em 1972.

C++ é uma linguagem feita pelo Bjarne Stroustrup, em 1979.

C# é uma linguagem feita pela Microsoft, não sei quando.

C bem de BCPL... e tem muita história sobre o assunto na internet, :D

(Atenção, é comum ler: cpp ou c plus plus, para c++. E C-sharp para c#)

--

C e C++ são compiladas. Enquanto C#, salvo meu engano, é interpretada.

C# apesar de interpretada é consideravelmente mais rápida que sua concorrente JAVA, que também é interpretada. O desempenho de C# é muito bom, porém, restrito aos alcance da plataforma .NET.

Java, por outro lado, roda em tudo e é essencialmente retrocompatível. Existe um esforço muito grande em trazer novidades sem sobrescreve recursos passados.

--

Orientação é como o Maurício estava explicando. Demora um pouco entender.

Eu, particularmente, acho melhor aprender primeiro Estruturada ( C ) para só depois aprender orientada ( C++, C#, Java, D... ). Se bem que o melhor mesmo era aprender em lote antes de tudo. xD Aprender a usar CMD/Bash através de arquivos de lote é bastante útil também. Em toda configuração de linguaguens não há muito como fugir deste conhecimento.

--

Voltado ao tópico passado, Dev-C++ é ótimo pra você aprender C... Não conheço alternativa melhor para Windows.

Se pesquisar mais sobre a história da linguagem fará menos confusão. Mas o melhor mesmo é aprender as linguagens, deixe a história para o pessoal de humanas, xD

felicidades

:bandeira:

  • Membro VIP
Postado
C e C++ são compiladas. Enquanto C#, salvo meu engano, é interpretada.

"Interpretada" aqui significa apenas que o aplicativo não é gravado no HD com código nativo, na hora de executar tanto o C# quanto o Java compilam a aplicação para código nativo, não existe mais aquele interpretador que lê o programa linha a linha e executa os comandos.

C# apesar de interpretada é consideravelmente mais rápida que sua concorrente JAVA, que também é interpretada. O desempenho de C# é muito bom, porém, restrito aos alcance da plataforma .NET.

A velocidade depende muito da VM, não ha diferenças significativas na linguagem para que uma fica mais rapida que a outra, não existe só uma VM para Java e nem só uma VM para .Net, e existe diferença de velocidade entre todas elas.

Quanto a portabilidade, tem mono.Net para Linux, mas deixa muito a desejar... O .Net foi estruturado em torno do Windows, não fica bem em outras plataformas.

Postado

n conheço a historia do linux (desculpe c estiver errado), mas sei q ele é feito em C puro. então Linus Torvalds deveria ter algum compilador para colocar aqueles botões e tal, pois só no texto n da. Certo?

enatum, nesmo sabendo a linguagem estruturada eu deveria aprender também a usar o compilador em modo "grafico" se eu quiser fazer um programa do tipo q calcula uma media escolar, por exemplo. como no VB.

é uma conclusão q eu cheguei. n sei c estou certo?

  • Membro VIP
Postado
n conheço a historia do linux (desculpe c estiver errado), mas sei q ele é feito em C puro. então Linus Torvalds deveria ter algum compilador para colocar aqueles botões e tal, pois só no texto n da. Certo?

E por que não? Muitas aplicações feitas com botoezinhos são feitas só com texto, sem nenhum editor gráfico, um editor desse ajuda bastante, mas não é obrigatório.

Postado

EduardoS,

"Interpretada" aqui significa apenas que o aplicativo não é gravado no HD com código nativo, na hora de executar tanto o C# quanto o Java compilam a aplicação para código nativo, não existe mais aquele interpretador que lê o programa linha a linha e executa os comandos.

Sim, faz verificação de sintaxes e tudo mais, primeiro é gerado o bytecode... Independente do modelo de interpretação são linguagens mais lentas. Programo em Java e não há como se comprar aquilo que faço nesta linguagem com linguagens compiladas.

Tenho um computador modesto e isso é um motivo de grande pesar meu. Salvos os testes que li - não consigo acreditar nestes - sobre o desempenho dessas linguagens que dizem ser até melhores, o desempenho é extremamente inferior.

Nesta segunda houve uma palestra aqui em Goiânia sobre Phyton. O palestrande mostrou uma tabela comparando o tempo de desempenho de uma aplicação de rede neural, em várias linguagens, feitas por ele. A linguagens interpretadas/ágeis ganham em portabilidade e tempo de construção do software. Porém, não conseguem competir em desempenho de igual para igual com outras linguagens.

São mais rápidas na criação do software e mais lentas na execução. Não me lembro quais linguagens ele se referia, porém uma foi 50 vezes mais lenta que C, nesta aplicação.

Veja, existe até Sistema Operacional escrito em JAVA. Porém, o código é compilado e não interpretado. Independe de máquina virtual. entretanto, esse tipo de prática foge do nosso debate. Principalmente, pelo contrário também ser possível. Poderiamos criar uma MV para C, Pascal, por exemplo. O que acaba por corromper o que havia posto em pauta.

--

speednoz,

Linux não tem botões. Todas as shells são de terceiros. O modo texto, bash, por exemplo, não é linux. Nem o X - servidor gráfico -, nem os gerenciadores de janela - KDE, GNOME, XFCE.

É por isso que se diz que uma distribuição é GNU/Linux e não apenas Linux. Existem alternativas ao Linux para os programas GNUs, do mesmo modo que existem alternativas aos GNUs para o Linux.

Programas gráficos em geral são feitos em IDEs. A parte gráfica passa a ser um conjunto de colagens. Escolhe botão e o arrasta sobre o formulário.

Mas poder fazer... pode-se fazer até em assembly. Muitos emuladores de vídeo-game são feitos assim. Infelizmente, é muito trabalhoso, apesar de serem recompensavelmente mais rápidos.

--

Tudo deve ser levado em consideração. O tempo para criação da aplicação. Os recursos oferecidos por determinada linguagem. O desempenho desta linguagem. A abrangencia de plataformas para essa linguagem. A possibilidade de re-utilização de código, a possibilidade de apromirar os códigos disponíveis.

felicidades

:bandeira:

Postado
E por que não? Muitas aplicações feitas com botoezinhos são feitas só com texto, sem nenhum editor gráfico, um editor desse ajuda bastante, mas não é obrigatório.

isso eu desconheço

  • Membro VIP
Postado

Sim, faz verificação de sintaxes e tudo mais, primeiro é gerado o bytecode... Independente do modelo de interpretação são linguagens mais lentas. Programo em Java e não há como se comprar aquilo que faço nesta linguagem com linguagens compiladas.

Sim, C/C++ continua bem mais rápido, mas nem tanto pela linguagem em si, quando o usuário clica duas vezes em um exe do .Net o Windows carrega a VM, o JIT compiler e esse ultimo compila o IL para código nativo, mesmo uma aplicação grande em um PC modesto isso leva só alguns segundos, compara esse tempo com o quanto um bom compilador C/C++ leva para compilar uma aplicação com todas as otimizações possíveis, não tem nem como o .Net competir...

O consolo do usuário é que se fosse tudo apenas interpretado serria bem mais lento.

isso eu desconheço

No próprio Dev-C++ tem alguns exemplo de aplicações com interfaces gráficas que foram feitas apenas com texto, se for mais adiante e pegar aplicações em assembly com interface grafica e só texto, sinta-se a vontade: http://www.masm32.com

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!