Converta TypeScript em Ada usando IA

A tradução de código fonte para fonte de TypeScript usando IA envolve a utilização de técnicas de processamento de linguagem natural (PNL) e algoritmos de aprendizado de máquina para analisar e compreender o código-fonte

CoffeeScript

FAQ

Desafios de Tradução

Problema de Tradução Exemplo de Sintaxe TypeScript Exemplo de Sintaxe Ada Pontuação (1-10)
Anotações de Tipo let x: number = 5; x : Integer := 5; 3
Interfaces e Definições de Tipo interface Shape { area(): number; } type Shape is abstract; 7
Tipos de União let value: string | number = "Hello"; type Value is (StringValue, IntegerValue); 8
Propriedades Opcionais let obj: { prop?: string } = {}; type Obj is record Prop : String; end record; 6
Genéricos function identity<T>(arg: T): T { return arg; } function Identity (Arg : T) return T; 5
Promessas e Programação Assíncrona async function fetchData() { ... } declare ...; begin ...; end; 9
Decoradores @logMethod -- Sem equivalente direto 10
Enums enum Color { Red, Green, Blue } type Color is (Red, Green, Blue); 4
Sistema de Módulos import { Module } from 'module'; with Module; 5
Guardas de Tipo if (typeof value === 'string') { ... } if Value'Image = "String" then ...; 6

Anotações de Tipo

As anotações de tipo em TypeScript permitem que os desenvolvedores especifiquem o tipo de uma variável explicitamente. Em Ada, as declarações de tipo também são explícitas, mas seguem uma sintaxe diferente.

Exemplo TypeScript:

let x: number = 5;

Exemplo Ada:

x : Integer := 5;

Referência: Manual TypeScript - Tipos Básicos


Interfaces e Definições de Tipo

As interfaces em TypeScript definem um contrato para classes ou objetos. Ada possui um conceito de tipos abstratos, mas não tem suporte direto a interfaces.

Exemplo TypeScript:

interface Shape {
    area(): number;
}

Exemplo Ada:

type Shape is abstract;

Referência: Manual TypeScript - Interfaces


Tipos de União

TypeScript suporta tipos de união, permitindo que uma variável contenha múltiplos tipos. Ada não tem um equivalente direto, mas pode usar tipos marcados.

Exemplo TypeScript:

let value: string | number = "Hello";

Exemplo Ada:

type Value is (StringValue, IntegerValue);

Referência: Manual TypeScript - Tipos de União


Propriedades Opcionais

TypeScript permite que propriedades sejam opcionais em tipos de objeto. Ada não tem um equivalente direto, mas pode usar registros com valores padrão.

Exemplo TypeScript:

let obj: { prop?: string } = {};

Exemplo Ada:

type Obj is record
    Prop : String;
end record;

Referência: Manual TypeScript - Interfaces


Genéricos

TypeScript suporta genéricos, permitindo que funções e classes operem em tipos especificados em tempo de execução. Ada possui um recurso semelhante, mas com sintaxe diferente.

Exemplo TypeScript:

function identity<T>(arg: T): T {
    return arg;
}

Exemplo Ada:

function Identity (Arg : T) return T;

Referência: Manual TypeScript - Genéricos


Promessas e Programação Assíncrona

TypeScript tem suporte embutido para promessas e sintaxe async/await, enquanto o modelo de concorrência de Ada é baseado em tarefas.

Exemplo TypeScript:

async function fetchData() {
    // ...
}

Exemplo Ada:

declare
    -- Declaração da tarefa
begin
    -- Corpo da tarefa
end;

Referência: Manual TypeScript - Async/Await


Decoradores

TypeScript suporta decoradores, que são uma forma de metadados. Ada não tem um equivalente direto.

Exemplo TypeScript:

@logMethod
class Example { }

Exemplo Ada:

-- Sem equivalente direto

Referência: Manual TypeScript - Decoradores


Enums

Os enums em TypeScript fornecem uma maneira de definir um conjunto de constantes nomeadas. Ada possui um recurso semelhante com tipos enumerados.

Exemplo TypeScript:

enum Color {
    Red,
    Green,
    Blue
}

Exemplo Ada:

type Color is (Red, Green, Blue);

Referência: Manual TypeScript - Enums


Sistema de Módulos

TypeScript usa um sistema de módulos para organizar o código, enquanto Ada usa pacotes.

Exemplo TypeScript:

import { Module } from 'module';

Exemplo Ada:

with Module;

Referência: Manual TypeScript - Módulos


Guardas de Tipo

TypeScript fornece guardas de tipo para restringir tipos em tempo de execução. Ada usa atributos de tipo para funcionalidade semelhante.

Exemplo TypeScript:

if (typeof value === 'string') {
    // ...
}

Exemplo Ada:

if Value'Image = "String" then
    -- ...
end if;

Referência: Manual TypeScript - Guardas de Tipo