O que é Common Language Infrastructure (CLI)?

17 de julho de 2024

Common Language Infrastructure (CLI) é uma estrutura padronizada desenvolvida pela Microsoft para construir e executar aplicações escrito em diferentes linguagens de programação. Ele fornece uma plataforma neutra em termos de linguagem que permite a interoperabilidade de código, permitindo que várias linguagens funcionem juntas perfeitamente.

o que é infraestrutura de linguagem comum

O que é infraestrutura de linguagem comum?

Common Language Infrastructure (CLI) é uma arquitetura padronizada projetada pela Microsoft para oferecer suporte ao desenvolvimento e execução de aplicativos de software escritos em várias linguagens de programação de alto nível. A CLI fornece um ambiente onde códigos de diferentes linguagens podem interoperar, aproveitando um conjunto unificado de serviços e bibliotecas.

Esta estrutura inclui a definição de tipos de dados, execução de código e outros tempo de execução comportamentos, garantindo que os programas possam ser executados em vários Hardwares e plataformas de software sem modificação. Ao abstrair a plataforma subjacente, a CLI permite que os desenvolvedores escrevam código em sua linguagem preferida, mantendo a compatibilidade e o desempenho. O sistema também inclui um modelo de segurança robusto, coleta de lixo, tratamento de exceções e suporte para tipos dinâmicos.

Componentes de infraestrutura de linguagem comum

A Common Language Infrastructure consiste em vários componentes principais que juntos facilitam o desenvolvimento e a execução de aplicativos em um ambiente multilíngue. Cada componente desempenha um papel crucial para garantir a interoperabilidade da linguagem, o gerenciamento do tempo de execução e a consistência da execução. Eles incluem:

  • Sistema de tipo comum (CTS). CTS define como os tipos de dados são declarados, usados ​​e gerenciados no ambiente de tempo de execução. Ele garante que os tipos usados ​​em diferentes linguagens de programação possam interoperar, estabelecendo uma estrutura comum para representação de tipos de dados. Isso permite integração e comunicação perfeitas entre códigos escritos em diferentes linguagens.
  • Especificação de linguagem comum (CLS). O CLS fornece um conjunto de regras e diretrizes que os idiomas devem seguir para garantir que possam interagir com outros idiomas compatíveis com CLS. Esta especificação define um subconjunto de CTS que todas as linguagens direcionadas à CLI devem suportar, promovendo a interoperabilidade e reduzindo as barreiras linguísticas.
  • Sistema de execução virtual (VES). VES, também conhecido como Common Language Runtime (CLR) na estrutura .NET, é responsável por gerenciar a execução de programas compatíveis com CLI. Ele fornece serviços como gerenciamento de memória, aplicação de segurança, tratamento de exceções e compilação just-in-time (JIT) de código de linguagem intermediária (IL) para código de máquina nativo.
  • Metadados. metadados descreve a estrutura do código e os tipos dentro dele, incluindo classes, interfaces, métodos e campos. Ele fornece informações essenciais que o tempo de execução utiliza para verificação de tipo, segurança e empacotamento, permitindo um alto grau de introspecção e autodescrição no código.
  • Linguagem intermediária (IL). IL, também conhecida como linguagem intermediária comum (CIL) ou linguagem intermediária Microsoft (MSIL), é a linguagem intermediária CPU-conjunto independente de instruções para as quais as linguagens CLI são compiladas. O VES executa IL convertendo-o em código nativo usando compilação JIT ou compilação antecipada (AOT), permitindo independência e otimização de plataforma.

Como funciona a infraestrutura de linguagem comum?

A infraestrutura de linguagem comum (CLI) opera como uma estrutura abrangente que permite o desenvolvimento e a execução de aplicações escritas em múltiplas linguagens de programação, garantindo interoperabilidade e execução eficiente. Aqui está uma visão geral de como a CLI funciona:

  1. Compilação de código fonte. Ao escrever código em uma linguagem compatível com CLI, o código fonte é compilado pelo respectivo compilador de linguagem em uma linguagem intermediária (IL), que é independente da CPU. Este código IL é um conjunto de instruções de baixo nível que todas as linguagens compatíveis com CLI usam, garantindo consistência e interoperabilidade.
  2. Geração de metadados. Juntamente com IL, o compilador gera metadados, que descrevem os tipos, membros e referências dentro do código. Os metadados incluem informações sobre classes, métodos, campos e outras estruturas de dados, facilitando a verificação de tipos, a aplicação de segurança e outros serviços de tempo de execução.
  3. Criação de montagem. O código IL e os metadados são empacotados juntos em um assembly, que pode ser um executável (.exe) ou uma biblioteca (.dll). Os assemblies são os blocos de construção dos aplicativos CLI e podem ser compartilhados e reutilizados em diferentes aplicativos.
  4. Execução por sistema de execução virtual (VES). Quando um assembly é executado, o sistema de execução virtual (VES), também conhecido como Common Language Runtime (CLR) no .NET, assume o controle. O VES carrega o assembly, lê os metadados e inicia a execução convertendo o código IL em código de máquina nativo usando compilação just-in-time (JIT). Alternativamente, a compilação antecipada (AOT) pode ser usada para converter IL em código nativo antes da execução, melhorando o desempenho.
  5. Gerenciamento de memória. O VES lida com o gerenciamento de memória por meio da coleta automática de lixo. Este processo identifica e libera memória que não está mais em uso, evitando que a memória vazamentos e otimizar a utilização de recursos.
  6. Aplicação de segurança. A CLI incorpora um modelo de segurança robusto que impõe segurança de acesso ao código (CAS) e segurança de tipo, garantindo que o código seja executado dentro de permissões e limites definidos. Isso evita o acesso não autorizado e a execução de códigos prejudiciais.
  7. Manipulação de exceção. O VES fornece um mecanismo consistente de tratamento de exceções em todas as linguagens compatíveis com CLI, permitindo que os desenvolvedores escrevam aplicativos robustos e tolerantes a erros. As exceções são gerenciadas de maneira uniforme, garantindo que os erros sejam detectados e tratados de forma adequada.
  8. Interoperabilidade. O sistema de tipo comum (CTS) e a especificação de linguagem comum (CLS) garantem que diferentes linguagens possam trabalhar juntas perfeitamente. O CTS define um conjunto comum de tipos de dados e operações, enquanto o CLS especifica os recursos que as linguagens devem suportar para garantir a interoperabilidade. Isto permite a integração de componentes e bibliotecas escritas em diferentes linguagens dentro de uma única aplicação.

Benefícios da infraestrutura de linguagem comum

benefícios da infraestrutura de linguagem comum

A infraestrutura de linguagem comum (CLI) oferece vários benefícios que aprimoram o desenvolvimento e a execução de software em diversas linguagens de programação. Estas vantagens contribuem para aumentar a eficiência, interoperabilidade e capacidade de manutenção no processo de desenvolvimento:

  • Interoperabilidade. CLI permite que diferentes linguagens de programação funcionem juntas perfeitamente. Isso permite que os desenvolvedores utilizem a melhor linguagem para cada tarefa específica dentro de uma única aplicação, facilitando a colaboração e a reutilização de código.
  • Independência de plataforma. Os programas escritos usando CLI podem ser executados em várias plataformas de hardware e software sem modificação. Essa compatibilidade entre plataformas garante que os aplicativos possam atingir um público mais amplo e se adaptar facilmente a diferentes ambientes.
  • Sistema de tipo unificado. O sistema de tipo comum (CTS) na CLI fornece uma estrutura consistente para definir e usar tipos de dados. Essa padronização reduz erros relacionados ao tipo e simplifica a manipulação de dados entre linguagens.
  • Segurança. A CLI inclui um modelo de segurança robusto que ajuda a proteger os aplicativos contra diversas ameaças. Ele impõe segurança e verificação de acesso ao código, garantindo que apenas códigos seguros e autorizados sejam executados.
  • Execução gerenciada. O sistema de execução virtual (VES) gerencia a execução de programas, fornecendo serviços como coleta de lixo, tratamento de exceções e gerenciamento de recursos. Esse ambiente gerenciado reduz o risco de vazamentos de memória e melhora a estabilidade do aplicativo.
  • Otimização de performance. A CLI inclui recursos que otimizam o desempenho, como compilação just-in-time (JIT). Isso traduz o código de linguagem intermediária em código de máquina nativo em tempo de execução, melhorando a velocidade e a eficiência de execução.
  • Desenvolvimento flexcapacidade. Ao suportar múltiplas linguagens de programação, a CLI oferece aos desenvolvedores a flexpossibilidade de escolher as melhores ferramentas e linguagens para seus projetos. Isto promove a inovação e permite que as equipas aproveitem eficazmente os conhecimentos e os recursos existentes.

Anastasia
Spasojevic
Anastazija é uma redatora de conteúdo experiente, com conhecimento e paixão por cloud computação, tecnologia da informação e segurança online. No phoenixNAP, ela se concentra em responder a questões candentes sobre como garantir a robustez e a segurança dos dados para todos os participantes do cenário digital.