All Rights ReservedView Non-AMP Version
Preprod IT Forum
  • Homepage
  • Plataformas
Notícias

Linguagem de programação C ganha atualizações

linguagem de programação C

Um rascunho de trabalho do padrão para a próxima revisão da linguagem de programação C, agora chamada “C2x“, está disponível para review.

A maioria das alterações aprovadas até agora para o C2x não envolve a adição de novos recursos, mas sim o esclarecimento e o refinamento de como C deve se comportar em diferentes implementações e em relação ao C ++, irmão maior. A ênfase no refinamento está de acordo com a maneira como as revisões anteriores do C – C11 e, mais recentemente, do C17.

As melhores notícias de tecnologia B2B
Acompanhe todas as novidades diretamente na sua caixa de entrada

Conforme descrito na Carta C2x, o plano enfatiza fortemente a manutenção de edições futuras da linguagem compatíveis com o grande corpo do código C existente, e para evitar (embora não descartar totalmente) “mudanças silenciosas” ou mudanças “que causam um programa de trabalho trabalhar de forma diferente sem aviso prévio.”

O WG14, grupo que supervisiona o desenvolvimento do padrão C (ISO / IEC 9899), aprovou formalmente apenas um pequeno número de alterações no idioma do padrão C17.

Conheça algumas das mudanças mais notáveis que sabemos até agora:

Um esclarecimento da palavra-chave restrita

A palavra-chave restrita é usada para informar ao compilador que um determinado objeto na memória pode ser acessado apenas por aquele ponteiro, como uma otimização. No C2x, haverá exemplos mais detalhados de como a restrição deve se comportar, para garantir que os compiladores não acabem fazendo otimizações inseguras ou desnecessárias.

Fazendo o static_assert se comportar da mesma maneira que no C, como em C ++

A declaração static_assert, encontrada em C e C ++, é usada para garantir que uma determinada expressão constante seja válida em tempo de compilação, mas é implementada de maneira diferente nos dois idiomas. Com essa mudança, a versão C2x se comportará da mesma forma que a versão C ++, facilitando o compartilhamento do código de cabeçalho entre os idiomas e a tradução entre C e C ++.

Melhores definições para comportamento de uniões

Diferentes implementações de C têm diferentes comportamentos quando se trata de uniões anônimas, um recurso adicionado em C11. O C2x esclarece como isso funciona, por isso não depende da implementação.

Outras alterações incluem como lidar com casos de divisão por zero em pow (), formatos de avaliação para pontos flutuantes e mais esclarecimentos sobre como lidar com conversões de codificação de caracteres largos.

A linguagem

C é a base de muitos projetos de software populares, como o kernel do Linux, e continua sendo uma linguagem amplamente usada, atualmente em segundo lugar no índice Tiobe. Sua simplicidade faz com que seja uma escolha comum para aplicativos de software que são executados em ou próximo ao bare metal, mas os desenvolvedores devem ter cuidado extra em C, em comparação com linguagens de nível mais alto, como Python, para garantir que a memória seja gerenciada corretamente – facilmente em programas em C.

As revisões anteriores do padrão C incluíam recursos para ajudar no gerenciamento da memória, incluindo o recurso de verificação de limites do “Anexo K”. No entanto, uma das propostas na tabela para o C2x é desaprovar ou remover as APIs do Anexo K, porque suas implementações no campo são em grande parte incompletas, não conformes e não portáteis. Propostas alternativas incluem a substituição dessas APIs por sistemas de verificação de limites de terceiros, como o Valgrind ou o Intel Pointer Checker, introduzindo refinamentos no modelo de memória ou adicionando novas maneiras de executar a verificação de limites para objetos de memória.

Além das revisões do padrão oficial C, outros projetos surgiram para oferecer melhores maneiras de escrever C. A extensão Checked C, da Microsoft, adiciona verificações para evitar muitos erros comuns no manuseio da memória. Jens Gustedt, um dos principais colaboradores do padrão C, tem sua própria proposta Modular C, que dá a C um sistema de módulos semelhante aos encontrados em linguagens de alto nível.

O atual roteiro para o C2x prevê pelo menos mais dois anos para que as propostas sejam aprovadas. O WG14 está buscando “um padrão revisado até o final de 2021, com uma data de publicação de 2022”.

Next Agile Mindset, da Extreme Networks, leva automação ao data center »
Previous « Cibersegurança: 4 riscos de fraude durante a Black Friday
Share
Published by
Redação
Tags: c#linguagem de programação
8 anos ago

    Related Post

  • Novos executivos da semana: Uncover, Tech for Humans, Diebold Nixdorf, Unico e mais
  • Se o Brasil não organizar seus dados culturais, outro fará isso por nós, alerta Jorge Brivilati
  • CBYK nomeia Maurício Matsuda como novo CEO

Recent Posts

  • Notícias

83% dos CIOs já adiaram projetos estratégicos por restrições de orçamento

A pressão por controle de custos vem alterando a dinâmica das áreas de tecnologia nas…

6 dias ago
  • Estudos

Fintechs brasileiras captam US$ 2,77 bi em 2025 e entram em nova fase de maturidade

O mercado brasileiro de fintechs passou por uma transformação no perfil dos investimentos em 2025.…

6 dias ago
  • Notícias

Sioux aposta em IA e dados para nova fase de experiências digitais e expande atuação para a Europa

O avanço da inteligência artificial e o uso estratégico de dados vêm transformando a forma…

6 dias ago
  • Artigos

Qual é o risco do desenvolvimento de software com IA?

Por Ramon Ribeiro Quase metade do código produzido por assistentes de inteligência artificial contém vulnerabilidades…

6 dias ago
  • Notícias

Se o Brasil não organizar seus dados culturais, outro fará isso por nós, alerta Jorge Brivilati

Peça a um modelo de inteligência artificial que gere a imagem de uma cidade, sem…

7 dias ago
  • Notícias

Novos executivos da semana: Uncover, Tech for Humans, Diebold Nixdorf, Unico e mais

O IT Forum apresenta, semanalmente, os novos executivos e os principais anúncios de contratações, promoções e mudanças…

7 dias ago
All Rights ReservedView Non-AMP Version
  • L