0% acharam este documento útil (0 voto)
9 visualizações13 páginas

Computação 2

O documento apresenta a história, funcionamento e comparação da linguagem de programação C++ com Python, destacando sua origem como uma extensão do C e seu criador, Bjarne Stroustrup. Além disso, discute a aplicação do C++ no mundo atual, suas críticas, evolução ao longo dos anos e interações com outras linguagens de programação. Por fim, aborda o futuro do C++, incluindo sua relação com inteligência artificial e novos dispositivos.

Enviado por

campanhasandra13
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
9 visualizações13 páginas

Computação 2

O documento apresenta a história, funcionamento e comparação da linguagem de programação C++ com Python, destacando sua origem como uma extensão do C e seu criador, Bjarne Stroustrup. Além disso, discute a aplicação do C++ no mundo atual, suas críticas, evolução ao longo dos anos e interações com outras linguagens de programação. Por fim, aborda o futuro do C++, incluindo sua relação com inteligência artificial e novos dispositivos.

Enviado por

campanhasandra13
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 13

Enzo Campanha Rocha Barros

Faculdade Independente do Nordeste


2° Semestre- Engenharia da Computação

Linguagem C++
História, funcionamento e comparação ao python.

Enzo Campanha Rocha Barros


Professor Marcelo Almeida
Vitória da Conquista – Bahia
Enzo Campanha Rocha Barros
2024

Linguagem C++
História, funcionamento e comparação ao python.

Este trabalho tem como objetivo retratar a história,

criador, e a finalidade por trás da linguagem do C++,

e outras características a mais.

Além de uma breve comparação com a linguagem python.

Vitória da Conquista
2024
Índice

 Como surgiu a linguagem C+


 Criador da linguagem.
 Finalidade
 Aplicação no mundo atual.
 Críticas ao C++
 Evolução do C++
 Interações com outras linguagens de programação.
 Python x C++
 O futuro do C++
Como surgiu a linguagem C++

 Linguagem C, o “avô” do C++:


É preciso ter em mente que, o C++ surgiu como uma extensão da linguagem de programação C.
Esta última, apesar de ser mais rápida e eficiente do que outras linguagens de sua época (final dos anos
70) apresentava pouca variedade de recursos para criação de softwares de grande porte. Ao passo que
certo cientista da computação dinamarquês ia aprimorando o C, adicionando mais recursos similares ao
da linguagem Simula, o mundo viu surgir um esboço do que seria uma nova linguagem de programação
orientada á objeto, timidamente chamada ainda de “C com objetos’’”.

 Bjarne Stroustrup: O cientista que mudou o


mundo da computação.
Bjarne Stroustrup nasceu em 30 de dezembro de 1950, na cidade de Aarhus, Dinamarca. De
família da classe operária, estudou em escolas locais, até ingressar na Universidade de Aarhus, cursando
matemática. Sua vida mudou quando virou pupilo do já renomado matemático Kristen Nygaard. Depois
de fazer seu doutorado na Universidade de Cambridge e se mudar para Nova Jersey onde virou cientista
chefe dos laboratórios Bell da AT&T, ele percebeu que introduzir recursos de POO ( programação
orientada a objeto) ao C, que já era conhecido por sua relativa facilidade, e velocidade seria mais eficiente
para a empresa. Então em 1979, ele começa a dar início ao projeto, criando o primeiro compilador (do
que na época era chamado de “C com classes” pois o nome C++ passa ser empregado a partir de 1983) o
CFront, fazendo referência e sendo criado a partir do compilador do C, o Cpre.
Finalidade e aplicação no mundo atual

 O C++ pode manipular diretamente o hardware, por ser POO, além de ter herdado a
eficiência e a velocidade do C junto á capacidade se construir sistemas operacionais
complexos herdado do Simula, torna a linguagem a melhor candidata para rodar em
ambientes onde o espaço de hardware é limitado, dessa forma foi o possível a criação de
aplicativos de baseados em C++ que rodam em uma variedade de dispositivos, tornando as
exigências mais acessíveis.

 Uma variedade de softwares são total ou parcialmente baseados no C++, como os


sistemas operacionais Microsoft Windows, Apple MAC OS X, Symbian OS. Além de jogos
que requerem muitas funções intensivas, ou seja, possui sessões de multijogador, como
World of Warcraft, Conter Strike. Com o C++, navegadores web como Safári, Ópera,
Google Chrome e Mozilla FireFox rodam com alta velocidade. Existem outras infinidades
de tipo de software que são baseados na linguagem, desde sistemas de bancos de dados,
computação em nuvem até aplicativos de Graphics User Interface.
Críticas ao C++

 Muita coisa para escrever para obter programas simples:

É comum ouvir programadores mais experientes que o C++, não muito amigável
para novatos. Nos dias de hoje é uma linguagem que se escreve “muito” apenas para obter códigos
simples além de exigir, certo esforço mental em paralelo, para lembrar-se de colocar “#include”-guards.
Há um excesso de cadeias de chamadas de função, comparada ao Javascript, o que acaba sendo confuso
principalmente para quem não está acostumado. Embora seja rápida e versátil, exige uma quantidade
relativamente grande de complexidade cognitiva e esforço manual para escrever o código correto.
Programadores também relatam como ponto fraco a coesão dentro da linguagem.

 Vulnerabilidade de segurança:

Por ser orientada á objetos e mexer diretamente na memória, além do seu uso
comum, a segurança definitivamente não é o seu ponto forte. Ela surgiu em uma época, em
que, diferente do mundo atual, as linguagens de programação no final dos anos 70 e início
dos anos 80, não levavam em a vulnerabilidade de segurança, já que este fenômeno só
começa a aparecer com o surgimento da internet. Nos dias de hoje as linguagens de
programação focam em proteger a memória e sacrificar parte do alto desempenho, tanto o C
quanto o C++ focaram em manter o alto desempenho. O uso tanto para programas de alto
nível quanto para de baixo nível têm ajudado a tornar a segurança que passa ao usuário um
ponto questionável, segundo o que tece programadores mais experientes.

 Tarefas como declarações:

A linguagem entende que atribuição, ou seja, a imputação de um valor a uma variável é


um expressão e não uma declaração ( como if:; or; while ) o que acaba por gerar um trabalho a mais, não
podendo estender a linguagem, o que é considerado um passo para trás comparado a outras linguagens.
Evolução do C++

 2001-2003:
Não querendo ficar para trás, já que linguagens de programação influenciadas por
C++, como Java e C#, introduziram recursos que poderiam estar presentes no C++ , mas não estavam.
Pode-se dizer a possibilidade de inicializar um membro de dados em uma classe. Sendo assim no início
dos anos 2000 a linguagem declinava e necessitava de reformas, não só com a introdução de novos
recursos mais de melhorias também.

Exibição de uma linha de código de C++ em 2024.

Exibição de um compilador C++ por volta do final do século XX.


 A década de 2010 e a volta por cima:
A metade da década de 2000 foi usada por Bjarne para desenvolver um novo
padrão para C++. Assim nasceu o C++ OX ou C++11, que trouxe melhorias como a facilitação da escrita
e leitura do código, novas opções para simplificar o código, gerenciamento de recursos para promover
códigos com menos erros e fez melhorias na biblioteca padrão, adicionando extensões.

 O C++14:

O herdeiro do C++11 foi o C++14, que cobriu apenas alguns aspectos parciais mas
que foram melhorias de extrema importância como lambdas genéricas, dedução do tipo de retorno da
função, expressões de captura lambda e adicionou o subpadrão std:: make_unique.

 O C++ 17:

A terceira versão veio focada em trazer facilidade para o usuário, que agora poderia
desfrutar de códigos simples para usos mais complexos. Esses avanços incluem a dedução de argumentos
de modelo de classe, a declaração “if-constexpr”, inspirado pelo python trouxe a ligação estruturada, e
novas adições á biblioteca padrão

 O C++20:

Ao contrário das duas versões antecessora, esta trouxe renovações mais profundas, a
modularização da linguagem agora seria mudada com a saída do clássico “#include”, melhorando o
tempo de construção. Além da entrada de outros três recursos, que elevaram ainda mais a importãncio do
C++20: Conceitos, corrotinas e intervalos.
Interações com outras linguagens de programação

- Em muitos casos é muito mais benéfico a atuação híbrida em conjunto de várias linguagens
de programação e isso pode ser observado na computação científica, indústria dos jogos e engenharia
financeira. Esse esquema é conhecido por interfaces de função estrangeira ( FFI’s) quando aplicadas junto
ao C++.

 Python e C++:

A integração entre python e C++ pode ser concebida no python importando as


bibliotecas pyblind11 e ctypes, a primeira pode ser usada para chamar bibliotecas em
C++ e C puro entre outras funções, a segunda mostra a conversão de tipos em C++ para
python.

 Java e C++:
A interação entre Java e C++, pode ser feita através da função “Java Native
Interface” no próprio java que permite chamar bibliotecas e aplicações nativas não só do C++ mas
também do C.

 Javascript e C++:

A interação Javascript e C++ ocorrem através do node-ffi, dentro do node-js


onde funções nativas do C++, serão trazidas ( sem precisar copiar) podendo também chamar bibliotecas
do C e do C++.
Python versus C++

Python C++

Velocidade: Python é Velocidade: Por se uma


estruturada apresentando uma linguagem de compilação, ou seja não
cópia de linha por linha o que copia linha por linha apresenta uma
obviamente, é mais lento. velocidade maior.

Flexibilidade: Flexibilidade: Permite a


Compatível com outras expansão de projetos, além do uso do
linguagens, independente, uso de baixo nível e alto nível.
versatilidade como back-end e
front-end.

Consumo de Consumo de memória:


Consume baixa quantidade de
memória: Requer um memória, porém não possuindo coleta
consumo considerável de
de lixo, sendo feito o gerenciamento
memória.
de memória manualmente.

Facilidade: Facilidade:
Com uma sintaxe mais complicada,
Apresenta uma facilidade iniciantes tendem a ter mais
maior do que o C++, com um dificuldade. Porém fornece uma boa
foco em códigos simples. base para aprender outras linguagens.

Desempenho: Desempenho:
Por ser compilada e ainda por cima
A tipagem dinâmica do python e usando menos memória, torna seu
sua leitura linha por linha, induz a desempenho melhor e mais rápido.
um desempenho pior

Aprendizado: Aprendizado:
Iniciantes tendem a ter uma
Iniciantes tendem a ter uma dificuldade maior com C++ por
facilidade maior com python por apresentar uma sintaxe um pouco
possuir um foco no essencial com mais complexa.
códigos simples.
O futuro do C++

 O C++ e a IA de mãos dadas no futuro:


Segundo o cientista da computação e palestrante, David Sankel, ainda existirá
erros no C++ daqui 20 ou 30 anos, porém agora os erros serão corrigidos com a ajuda
de uma inteligência artificial, talvez implantada junto a um compilador. Isso contribui
para a imponência do C++, como linguagem imperial da maior potência do mundo, os
Estados Unidos da América.

 O C++ e novos dispositivos:


Com um aumento no consumo e na produção de dispositivos eletrônicos,
será preciso se adequar ao ambiente, provavelmente, de acordo com Amir Kirsh,
cientista da computação, Bjarne deve explorar a capacidade da linguagem de usar pouca
memória, trazendo á ela um aspecto de acessibilidade.

 Desempenho:
Como consequência das duas últimas, e do aumento da interação das
linguagens o desempenho das novas versões deve melhorar, buscando sempre ter mais compatibilidade, e
talvez uma facilitação da sintaxe e melhorias na biblioteca padrão.
Fontes e Referências:

Como surgiu a linguagem C++:

https://medium.com/@milankathiriya/the-history-of-the-c-language-dc0b20d07b99

https://www.stroustrup.com/bs_faq.html#invention

https://www.geeksforgeeks.org/history-of-c/

Finalidade e aplicação no mundo atual:

https://www.codecademy.com/resources/blog/what-is-c-plus-plus-used-for/

Críticas ao C++ :

https://www.reddit.com/r/cpp/comments/19b1brk/why_does_c_get_so_much_hate_is_it_
really_that_bad/?rdt=60848

https://blog.codinghorror.com/the-problem-with-c/

https://medium.com/@gooro0/why-cpp-is-a-bad-language-b6b6f1927cc4
Evolução do C++

https://www.incredibuild.com/blog/modern-c-the-evolution-of-c

Interações com outras linguagens de programação:

https://medium.com/@AlexanderObregon/integrating-c-with-other-languages-12c331813476

Python versus C++:

https://www.ionos.com/digitalguide/websites/web-development/python-vs-c/

https://www.geeksforgeeks.org/difference-between-python-and-c/

O futuro do C++:

https://www.incredibuild.com/blog/modern-c-the-evolution-of-c

https://blog.developer.adobe.com/c-and-the-next-30-years-47c3b3b8fe98

Você também pode gostar